PHP变量

来源:互联网 发布:博客源码那个好 编辑:程序博客网 时间:2024/05/16 16:08
变量申明
PHP中变量以$开头,加变量名。变量名必须以字母或者下划线开头,由字母,下划线和数字以及ASCII码为127-255的字符组成。PHP变量大小写敏感,也就是大小写不同,被视为两个不同的变量。

赋值方式
1、按值赋值
按值赋值就是将原有变量的值复制到新的变量中,改变原变量值不会影响新变量的值,反之亦然。
例如:$v1 = 100;
     $v2 = v1;
     $v1 = 50;    //此时$v2等于100

2、引用赋值
所谓引用赋值,就是两个变量同时指向一个值,任何一个变量的值修改了,另一个的值也随之改变。此时,系统中其实仅保留一个值。
引用赋值有两个方法:
1)等号后面加个&
例如:$value2 =& $value1;
2)变量前面加个&
例如:$value2 = &value1;

变量作用域
PHP变量有4种作用域:局部变量、函数参数、全局变量、静态变量
1、局部变量
在函数内部申明,且仅在函数内部有效的变量。其作用有效范围仅函数体内。
例如:
function get(){
  $x = 0;
}

2、函数参数
在函数定义的括号内申明的变量。其作用有效范围仅函数体内。
例如:
function get($value){
  print ($value);
}

3、全局变量
可以在程序的任何地方都能访问,且值可以变更的变量称为全局变量。PHP用变量前加global关键字来表示,且必须在需要读取或者修改该变量的函数中显示地申明为全局变量。另外,若global关键字放在一个已经存在的变量前面(必须在函数体外申明的),则告诉PHP要使用同名的变量。请仔细看一下下面两段代码的差异。
代码1:
<?php
  $v1 = 15;

  function add20(){
    $v1 +=20;
    echo"<p>add20's result is$v1.</p>";
  }

  function addglobal20(){
    global$v1;
    $v1 +=20;
    echo"<p>addglobal20's result is$v1.\n</p>";
  }

  add20();
  addglobal20();
  add20();
  addglobal20();

  echo "<p>\$v1'svalue is $v1.</p>";
?>
程序运行结果如下:
add20's result is 20.
addglobal20's result is 35.
add20's result is 20.
addglobal20's result is 55.
$v1's value is 55.

代码2:
<?php
  function add20(){
    $v1 +=20;
    echo"<p>add20's result is$v1.</p>";
  }

  function addglobal20(){
    global$v1;
    $v1 +=20;
    echo"<p>addglobal20's result is$v1.\n</p>";
  }

  add20();
  addglobal20();
  add20();
  addglobal20();
  echo "<p>\$v1'svalue is $v1.</p>";
?>
程序运行结果如下:
add20's result is 20.
addglobal20's result is 20.
add20's result is 20.
addglobal20's result is 40.
$v1's value is 40.

4、静态变量
只需要在变量名前面加上static关键字就可以申明一个静态变量了。静态变量在函数体内申明,函数退出时,该变量的值不会丢失,再次进入该函数时,变量的申明语句不会被执行,但是变量的值可以被继续使用。静态变量对递归函数特别有用。
注:函数体外申明静态变量不会出错,但是没有太大意义。
例如:
<?php
  function add20(){
    static $v1 =20;
    $v1 +=20;
    echo"<p>add20's result is$v1.</p>";
  }

  add20();
  add20();
?>
程序运行结果如下:
add20's result is 40.
add20's result is 60.

0 0