·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> PHP学习心得(六)——变量

PHP学习心得(六)——变量

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
php学习心得(六)——变量 Posted on 2014-03-31 22:19 菜鸟展翅 阅读(...) 评论(...) 编辑 收藏

  PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。$this是一个特殊的变量,它不能被赋值。PHP 也提供了另外一种方式给变量赋值:引用赋值,将一个 & 符号加到将要赋值的变量前(源变量)。

  未初始化的变量具有其类型的默认值 - 布尔类型的变量默认值是FALSE,整形和浮点型变量默认值是零,字符串型变量默认值是空字符串或者数组变量的默认值是空数组。建议初始化,isset()语言结构可以用来检测一个变量是否已被初始化。

  PHP 提供了大量的预定义变量。

  任何用于函数内部的变量按缺省情况将被限制在局部函数范围内。例如:

 1 <?php 2 $a = 1; /* global scope */ 3  4 function Test() 5 { 6     echo $a; /* reference to local scope variable */ 7 } 8  9 Test();10 ?>

这个脚本不会有任何输出,因为 echo 语句引用了一个局部版本的变量$a,而且在这个范围内,它并没有被赋值。。PHP 中全局变量在函数中使用时必须申明为global。

 1 <?php 2 $a = 1; 3 $b = 2; 4  5 function Sum() 6 { 7     global $a, $b; 8  9     $b = $a + $b;10 }11 12 Sum();13 echo $b;14 ?>

以上脚本的输出将是“3”。在函数中申明了全局变量$a$b,任何变量的所有引用变量都会指向到全局变量。

  在全局范围内访问变量的第二个办法,是用特殊的 PHP 自定义$GLOBALS数组。

 1 <?php 2 $a = 1; 3 $b = 2; 4  5 function Sum() 6 { 7     $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b']; 8 } 9 10 Sum();11 echo $b;12 ?>

$GLOBALS是一个关联数组,每一个变量为一个元素,键名对应变量名,值对应变量的内容。$GLOBALS之所以在全局范围内存在,是因为 $GLOBALS 是一个超全局变量。

静态变量

  变量范围的另一个重要特性是静态变量(static variable)。静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。

可变变量

一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。

<?php$a = 'hello';?><?php$$a = 'world';?><?phpecho "$a ${$a}";?>

两个变量都被定义了:$a的内容是“hello”并且$hello的内容是“world”。

将可变变量用于数组,必须解决一个模棱两可的问题。当写下$$a[1]时,解析器需要知道是想要$a[1]作为一个变量呢,还是想要$$a作为一个变量并取出该变量中索引为 [1] 的值。解决此问题的语法是,对第一种情况用${$a[1]},对第二种情况用${$a}[1]