重温手册(二):变量与常量

变量

变量名规则:字母和下划线开头,后面跟上任意的字母、下划线和数字组成。

作用域:

$var = 110;
function test(){
    var_dump($var); //局部变量,只在函数体中生效
}
test(); //NULL

可变变量:

$var = 'abc';
$temp = 'var';
echo $$temp;   //abc
echo ${$temp}; //abc 可读性更好

超全局变量(预定义变量):

print_r($GLOBALS);//$GLOBALS包含所有超全局变量
Array
(
    [_GET] => Array
        (
            [status] => 3
        )

    [_POST] => Array
        (
            [uid] => 2
        )

    [_COOKIE] => Array
        (
            [system_lang] => chinese
            [city_id] => 7
            [login_name] => xiaoming
            [PHPSESSID] => lssctprsd5amgev013676sph12
        )

    [_FILES] => Array
        (
        )

    [_SERVER] => Array
        (
            [HTTP_ACCEPT_LANGUAGE] => zh-CN,zh;q=0.9
            [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
            [HTTP_UPGRADE_INSECURE_REQUESTS] => 1
            [HTTP_CONNECTION] => keep-alive
            [HTTP_HOST] => www.test.com
            [REDIRECT_STATUS] => 200
            [SERVER_NAME] => www.test.com
            [SERVER_PORT] => 80
            [SERVER_ADDR] => 127.0.2.1
            [REMOTE_PORT] => 51413
            [REMOTE_ADDR] => 127.0.0.1
            [SERVER_SOFTWARE] => nginx/1.18.0
            [GATEWAY_INTERFACE] => CGI/1.1
            [REQUEST_SCHEME] => http
            [SERVER_PROTOCOL] => HTTP/1.1
            [DOCUMENT_ROOT] => D:/workCoder/pro1
            [DOCUMENT_URI] => /test.php
            [REQUEST_URI] => /test.php?status=3
            [SCRIPT_NAME] => /merchant.php
            [CONTENT_LENGTH] => 
            [CONTENT_TYPE] => 
            [REQUEST_METHOD] => GET
            [QUERY_STRING] => status=3
            [SCRIPT_FILENAME] => D:/workCoder/pro1/test.php
            [PATH_INFO] => 
            [FCGI_ROLE] => RESPONDER
            [PHP_SELF] => /test.php
            [REQUEST_TIME_FLOAT] => 1611018257.2737
            [REQUEST_TIME] => 1611018257
            [original_get] => Array
                (
                    [status] => 3
                )

            [original_post] => Array
                (
                )

        )

    [_REQUEST] => Array
        (
            [status] => 3
        )

    [GLOBALS] => Array
 *RECURSION*
    [_ENV] => Array
        (
        )

    [_SESSION] => Array
        (
            [admin_verify] => d01eeca8b24321cd2fe89dd85b9beb51
            [admin_id] => 0
            [admin_name] => admin
        )

)

常量

定义:

define('CAT','猫');
define('CATFAMILY',array(
    '狮子','老虎','猎豹'
));

const APPLE = '苹果';
const FRUITS = array(
    '雪梨','橙子','西瓜'
);

print_r(CAT);          //猫
print_r(CATFAMILY);    //Array ( [0] => 狮子 [1] => 老虎 [2] => 猎豹 ) 
print_r(APPLE);        //苹果
print_r(FRUITS);       //Array ( [0] => 雪梨 [1] => 橙子 [2] => 西瓜 )
define('APPLE','香蕉'); //Constant CAT already defined 不能重复定义

作用域:运行脚本中全局使用
魔术常量:

<?php
namespace index;

function animal(){
    echo __FUNCTION__;
}

trait canteen{
    public function food(){
        echo __TRAIT__;
    }
}

class school{
    public function __construct(){
        echo __CLASS__;
    }

    public function teacher(){
        echo __METHOD__;
    }

    use canteen;
}

echo __NAMESPACE__;         // index
echo __LINE__;              // 27
echo __FILE__;              // /Users/xiaoming/pro2/index.php
echo __DIR__;               // /Users/xiaoming/pro2
animal();                   // animal
$schoolObj = new school();  // index\school
$schoolObj -> teacher();    // index\school::teacher
$schoolObj -> food();       // index\canteen
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!