php基础--变量及作用域

php变量定义规则

  • 变量必须以$符号开头,后面接变量名
  • 变量名必须以字母或者下划线开头
  • 变量名只能包含字母数字和下划线(A-z,0-9和_)
  • 变量名不能包含空格
  • 变量名区分大小写

创建变量

在php中,不必事先声明变量,在给变量赋值的时候被创建

<?php 
$txt = 'Hello,world';  //在给文本赋值的时候要加上引号
$x = 5;
$number = 5.5;
?>
  • 1
  • 2
  • 3
  • 4
  • 5

通过上面的变量赋值可以看出,没有对变量声明数据类型,这是因为php是一门弱类型的语言,php会自动把变量转换为正确的数据类型

php变量作用域

变量的作用域是脚本中变量可被引用/使用的范围,共有四种

  • local
  • global
  • static
  • paramter

全局作用域和局部作用域

在所有函数外部定义的变量,拥有全局作用域global;在函数内部定义的变量用于局部作用域local。全局变量可以被脚本的任何位置访问,但在函数内部访问全局变量要使用global关键字。而局部变量只能在函数内部进行访问。

<?php 
$x = 2;
function test(){
    $y = 3;
    echo $x;
    echo "<br>";
    echo $y;
    echo "<br>";
}
test();
echo $x;
echo "<br>";
echo $y;

上面的代码中,当调用test()函数时,会输出两个变量的值,函数会输出局部变量$y的值,但是不能输出全局变量$x的值。 
而在函数外输出的两个变量的值中,会输出变量$x 的值,但是不能输出$y的值,因为$y 是局部变量,不能在函数外部访问。

函数内部访问全局变量

在函数内部访问全局变量,要使用global关键字

<?php 
$x = 1;
function test(){
    global $x;
    $y = 2;
    echo $x+$y;
}
test();  //输出3
?>

static作用域

当一个函数调用完后,它的所有变量都会被删除,如果想要某个局部变量不被删除,那么可以使用static关键字

<?php 
function test(){
    $x = 0;
    echo $x;
    $x++;

}
test(); //输出0
test(); //输出0
test(); //输出0
?>
<?php 
function test(){
    static $x = 0;
    echo $x;
    $x++;

}
test(); //输出0
test(); //输出1
test(); //输出2
?>

parameter 参数作用域

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

<?php 
function test($x){
    echo $x;
}
test(1);   //输出1
test(2);   //输出2
?>

猜你喜欢

转载自blog.csdn.net/weixin_42075590/article/details/81346458