#PHP#(二)变量和常量

来源:互联网 发布:java 实时语音聊天 编辑:程序博客网 时间:2024/06/07 11:14

1、PHP变量


变量是存储数据的“容器”

PHP变量规则:

  • 变量以 $ 符号开始,后面跟着变量的名称

  • 变量名必须以字母或者下划线字符开始

  • 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ ),不可以包含空格

  • 变量名是区分大小写的(yY 是两个不同的变量)

demo

<?php$txt="Hello world!";$x=5;$y=10.5;?>

我们注意到当我们声明变量的时候不必向PHP声明该变量的数据类型,PHP会根据变量的值自动将变量转为化为正确是数据类型,这是因为PHP是一门弱类型的语言。

2、PHP变量作用域

变量的作用域是脚本中变量可被引用/使用的部分
PHP 有四种不同的变量作用域:

  • local

  • global

  • static

  • parameter

————————————————————————

01、局部作用域和全局作用域

全局作用域:所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,若想在一个函数中访问一个全局变量,需要用到global关键字。
局部作用域:PHP 函数内部声明的变量是局部变量,仅能在函数内部访问

<?php $x=5; // 全局变量 function myTest() {     $y=10; // 局部变量     echo "<p>测试函数内变量:<p>";     echo "变量 x 为: $x";     echo "<br>";     echo "变量 y 为: $y"; }  myTest();    //变量 x 为:             //变量 y 为:10echo "<p>测试函数外变量:<p>"; echo "变量 x 为: $x";  //变量x为:5echo "<br>"; echo "变量 y 为: $y";  //变量y为:?>

02、PHP global 关键字
global 关键字用于函数内访问全局变量。

<?php$x=5;$y=10;function myTest(){    global $x,$y;    $y=$x+$y;}myTest();echo $y;    // 输出 15?>

PHP将所有的全局变量存储在一个名为为 $GLOBALS[index] 的数组中, index 保存变量的名称。这个数组在函数内部可以访问,也可以用来直接更新全局变量

上面的实例和下面这种写法是一样的

<?php$x=5;$y=10;function myTest(){    $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];} myTest();echo $y;  //15?>

03、Static 作用域

当一个函数完成时,它的所有变量通常都会被删除。然而,有时候希望某个局部变量不要被删除,在JavaScript中一般用闭包来处理,在PHP中这里可以在边框前加static 关键字即可

<?phpfunction myTest(){    static $x=0;    echo $x;    $x++;}myTest();  //0myTest();  //1myTest();  //2?>

若函数内部定义的变量x前不加关键词static,则三次函数调用的结果应该都是为0,注意:该变量仍然是函数的局部变量。

04、参数作用域
参数是通过调用代码将值传递给函数的局部变量,参数是在参数列表中声明的,是函数声明的一部分。

<?phpfunction myTest($x) {    echo $x;}myTest(5);  //5?>

–> 其实这种有点类似于函数的传参

3、PHP常量

常量是一个简单值的标识符。该值在脚本中不能改变。

一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。

设置常量(使用 define() 函数)函数语法如下:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )

  • name:必选参数,常量名称,即标志符。

  • value:必选参数,常量的值。

  • case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。

一个区分大小写的常量demo:

<?php// 区分大小写的常量名define("GREETING", "欢迎访问 Runoob.com");echo GREETING;    // 输出 "欢迎访问 Runoob.com"echo '<br>';echo greeting;   // 输出 "greeting"?>

一个不区分大小写的常量demo:

<?php// 不区分大小写的常量名define("GREETING", "欢迎访问 Runoob.com", true);echo greeting;  // 输出 "欢迎访问 Runoob.com"?>

常量是全局的
常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。下面写一个在函数内使用常量的demo:

<?phpdefine("GREETING", "欢迎访问 Runoob.com");function myTest() {    echo GREETING;}myTest();    // 输出 "欢迎访问 Runoob.com"?>
原创粉丝点击