PHP基础之变量

来源:互联网 发布:中介者设计模式 java 编辑:程序博客网 时间:2024/05/18 06:39

PHP中的变量用一个美元符号($)+变量名的形式来表示,同样变量名是大小写敏感的。变量名由下划线或者字母+任意数量的字母,数字或者下划线组成。

此处所说的字母不包含特殊字符,而是a-z,A-Z,ASCII字符127-255的字符。同样值得留意的是$this是一个特殊变量,不能被赋值的。

看到这里相信会有人忍不住试一下输出$this会有什么结果,让我一起看一下:

 echo $this;

以下是程序的错误输出:

Fatal error: Uncaught Error: Using $this when not in object context in D:\Programs\PHP\PHP_Variable\PHP_Variable.php:65 Stack trace: #0 {main} thrown in 

从字面意思我们可以看出$this缺少上下文信息,稍微联想以下,可以想到$this的用武之地应该是在class等场景中,这里就不再了解。

啰嗦了这么多,让我看下变量命名的实例:

 $student_name = "LiLi"; $_student_count = 90; $student_course_003 = "语文";

虽然在PHP中不需要在定义变量的同时进行初始化,未初始化的变量会具有其类型的默认值,所以我们应该有一个好的习惯,申明的时候指定默认值。

        var_dump($student);        echo "<br>";//Notice:  Undefined variable: student in D:\Programs\PHP\PHP_Variable\PHP_Variable.php on line 69 NULL         $student .= "hello";        var_dump($student);        echo "<br>";// string(5) "hello"         $unset_int;        var_dump($unset_int);        echo "<br>";//Notice:  Undefined variable: unset_int in D:\Programs\PHP\PHP_Variable\PHP_Variable.php on line 77 NULL         $unset_int += 10;        var_dump($unset_int);        echo "<br>";//int(10)         $unset_array;        var_dump($unset_array);        echo "<br>";//Notice:  Undefined variable: unset_array in D:\Programs\PHP\PHP_Variable\PHP_Variable.php on line 84 NULL         $unset_array[0] = "hello";        var_dump($unset_array);        echo "<br>";//array(1) {  [0]=>  string(5) "hello" }


看到这里我们简单再了解一下php中的预定义变量。

对于php所有的脚本来说,它本身提供了大量的预定义变量,这些变量将所有的外部变量标识成内建环境变量。

1、超全局变量

在全部作用域中始终可以使用的内置变量,简单一点来说就是全球通行证,不管在哪用我没问题。大多数预定义变量都是这类的。

$GLOBALS    引用全局作用域中可用的全部变量

$_SERVER     服务器和执行环境

$_GET http get变量

$_POST  http post 变量

$_FILES  http 文件上传变量

$_COOKIE  http cookies

$_SESSION  session变量

$_REQUEST http request变量

$_ENV 环境变量


变量范围

变量的范围就是变量的生效范围,也就是变量在哪里可以使用。大部分的php变量只有一个单独的范围。


1.global

全局变量,和c语言稍有不同的是,php中的全局变量在函数中使用时必须申明为global。

$x = 10;        $y = 15;                function  sum()        {            global $x,$y;                        echo "x=".$x;            echo "<br>";            echo "y=".$y;            echo "<br>";            $y = $x + $y;            echo "y=".$y;            echo "<br>";           }                sum();        echo "x=".$x;        echo "<br>";        echo "y=".$y;        echo "<br>";


程序运行结果:

x=10y=15y=25x=10y=25


如果在函数中没有申明global $x,$y,那么输出结果如下:

Notice: Undefined variable: x in D:\Programs\PHP\PHP_Variable\PHP_Variable.php on line 101x=Notice: Undefined variable: y in D:\Programs\PHP\PHP_Variable\PHP_Variable.php on line 103y=Notice: Undefined variable: x in D:\Programs\PHP\PHP_Variable\PHP_Variable.php on line 105Notice: Undefined variable: y in D:\Programs\PHP\PHP_Variable\PHP_Variable.php on line 105y=0x=10y=15

由于$x,$y是定义在函数sum中的局部变量,而且没有使用global来使用全局变量,所以函数内容使用的是没有赋值的局部变量。


2.static 

静态变量仅在局部函数中存在,当程序执行,离开作用域的时候,该变量并未被销毁,其值任然存在。

 function static_fun()        {            static  $x = 10;            $x++;            echo $x;            echo "<br>";        }        static_fun();        static_fun();        static_fun();

输出:

111213



变量引用

PHP中允许两个变量同时指向同一个内容。

$x = 100;        $y = &$x;        echo $x;//100        echo "<br>";        echo $y;//100        echo "<br>";        $y = 115;        echo $x;//115        echo "<br>";

原创粉丝点击