第一站-----变量!!!
文章目录
前言
因为代码审计就简单学点PHP语法
提示:以下是本篇文章正文内容,下面案例可供参考
一、变量
<?php
$a=1;
$b=2;
$c=$a+$b;
?>
1.区分大小写
2.变量的存在就是需要一个容器将数据储存起来
3.不必向 PHP 声明该变量的数据类型,所以PHP语言是一门弱类型语言
PHP 会根据变量的值,自动把变量转换为正确的数据类型。
二、PHP变量作用的域
1.对于全局变量和局部变量的认识
也是局部和全局作用域的认识
代码如下(示例):
<?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";
?>
运行结果如下:
测试函数内变量:
变量 x 为:
变量 y 为: 10
测试函数外变量:
变量 x 为: 5
变量 y 为:
这里的函数mytest()中调用了全局变量和局部变量,我们发现只有局部变量显示,而在函数外调用全局变量和函数变量,只显示了全局变量,要想让函数使用全局变量我们就要用到 global 关键字
2.PHP global 关键字
在函数内调用函数外的全局变量我们要用到 global 关键字
代码如下:
<?php
$a=1;
$b=2;
function test()
{
global $a,$b;
$a=$a+$b;
}
test();
echo $b;
?>
你可以计算上面代码的值,答案为3
当然PHP也可以用数组的形式将全局变量储存再数组当中进行
$GLOBALS[index]
index 保存变量名称,这个数组可以在函数内部访问,也可以更新全局变量
代码:
<?php
$x=5;
$y=10;
function test()
{
$GLOBALS['y']=$GLOBALS['y']+$GLOBALS['x'];
}
test();
echo $y;
?>
按照原来的情况,这里的$y应该是10,但是经过数组的形式储存变量,然后在函数中对全局变量的更新, $y输出为15
3.Static 作用域
当一个函数完成之后,他的所有变量都会被删除,我们有时候希望不要删除局部变量所以我们在第一次声明变量的时候要要用到 static 关键字
代码如下:
<?php
function myTest()
{
static $x=0;
echo $x;
$x++;
echo PHP_EOL; // 换行符
}
myTest();
myTest();
myTest();
?>
代码运行结果:
0
1
2
如果我们没有进行static关键字之前申明,会得到结果如下
0
0
0
请你自己思考为什么吧?
注意两点:
①每次调用该函数时,该变量将会保留着函数前一次被调用时的值
②该变量还是函数的局部变量
4.参数作用域
<?php
function test()
{
echo $x;
}
test(50);
?>
这里我们的$x 输出为5
我们通过调用代码值传递给函数局部变量;
参数是在参数列表中申明的,作为函数申明的一部分