分享

PHP 变量

 偶记易方 2018-06-14
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>变量</title>
</head>
<body>
<!-- 变量   用于存储数据的容器  -->
<!-- PHP 变量规则:
    变量以 $ 符号开始,后面跟着变量的名称
    变量名必须以字母或者下划线字符开始
    变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
    变量名不能包含空格
    变量名是区分大小写的($y 和 $Y 是两个不同的变量)

tip:PHP 语句和 PHP 变量都是区分大小写的。
     当赋一个文本值给变量时,在文本值上加引号
php没有声明变量的命令,变量在第一次赋值时被创建
-->

<?php
echo "变量<br>";
$a=1;
$b=2;
$z=$a+$b;
echo '$z='.$z;  // $z=3
?>

<!-- 变量作用域 -->
<!--    local   
global   用于函数内访问全局变量
static   当一个函数完成时,它的所有变量通常都会被删除。希望某个局部变量不要被删除。在第一次声明变量时使用 static 关键字
parameter
 -->
<!-- 在所有函数外部定义的变量,拥有全局作用域,
除了函数外,全局变量可以被脚本中的任何部分访问,
要在一个函数中访问一个全局变量,需要使用global关键字
在php函数内部声明的变量是局部变量,仅能在函数内部访问
 -->
<?php
$x=5; // 全局变量

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

myTest();

echo "<p>测试函数外变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
// echo "变量 y 为: $y";   //报错
?> 

<!-- global   用于函数内访问全局变量 -->
<?php
$x1=5;
$y1=10;
 
function myTest1(){
    global $x1,$y1;
    $y1=$x1+$y1;
};
 
myTest1();
echo $y1; // 输出 15
?>


<!-- PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。 -->
<?php
$x2=5;
$y2=10;

function myTest2(){
$GLOBALS['y2']=$GLOBALS['x2']+$GLOBALS['y2'];
};

myTest2();
echo $y2."<br>"; // 输出 15
?>


<!-- static   当一个函数完成时,它的所有变量通常都会被删除。希望某个局部变量不要被删除。在第一次声明变量时使用 static 关键字 
  然后,每次调用该函数时,该变量将会保留着函数前一次被调用时的值。

注释:该变量仍然是函数的局部变量。
-->
<?php
function myTest3(){
    static $x=0;
    // $x=0;
    echo $x." ";
    $x++;
}

myTest3();
myTest3();
myTest3();
?>


<!-- 参数作用域 -->
<!-- 参数是通过调用代码将值传递给函数的局部变量。参数是在参数列表中声明的,作为函数声明的一部分: -->
<?php
echo "<br>";
function myTest4($x){
    echo $x;
}
myTest4(5);
?>


<!-- 在 php 中函数是有独立的作用域,所以局部变量会覆盖全局变量,即使局部变量中并定义没有全局变量相同的变量,也会被覆盖 -->
<?php
$c=5;
$d=3;
function t(){
    echo $c-$d; // 报错    输出 0
}
t();
echo "<br>";
echo $c;  //输出 5
echo "<br>";
?>


<?php
$e=5;
$f=3;
function t1(){  
    global $e,$f;
    echo $e-$f;  // 输出 2
}
t1();

echo PHP_EOL;

function t2(){
    echo $GLOBALS['e']-$GLOBALS['f'];  // 输出 2
}
t2();
?>


<!-- PHP_EOL 换行符 -->
<?php
echo "3";
echo PHP_EOL;
echo "4";
//windows平台相当于    echo "\r\n";
//unix\linux平台相当于    echo "\n";
//mac平台相当于    echo "\r";
?>
</body>
</html>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多