四章 变量、常量、表达式、运算符

四章 变量、常量、表达式、运算符

ID:5504455

大小:137.00 KB

页数:13页

时间:2017-12-16

四章 变量、常量、表达式、运算符_第1页
四章 变量、常量、表达式、运算符_第2页
四章 变量、常量、表达式、运算符_第3页
四章 变量、常量、表达式、运算符_第4页
四章 变量、常量、表达式、运算符_第5页
资源描述:

《四章 变量、常量、表达式、运算符》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第一节变量、常量4.1.1变量  PHP中一个美元符号后面跟上一个变量名称,即表示一个变量。变量的名称是对大小写敏感的。  变量名与PHP中其它的标签一样遵循相同的规则。一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。按照正常的正则表达式,它将被表述为:  '[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*'  字母为a-z,A-Z,ASCII字符从127到255(0x7f-0xff)。  〈?php  $var="Bob";  $Var="Joe";  echo"$var,$Var";//outputs"Bo

2、b,Joe"  $4site='notyet';//invalid;startswithanumber  $_4site='notyet';//valid;startswithanunderscore  $t?yte='mansikka';//valid;'洄is(Extended)ASCII228.  ?〉  PHP4提供了另外一种方式给变量赋值:传地址赋值。这意味着新的变量简单的引用(换言之,“成为其别名”或者“指向”)了原始变量。改动新的变量将影响到原始变量,反之亦然。这同样意味着其中没有执行复制操作;因而,这种赋值操作更加快速。尽管如此,任何提速的操作只有在紧密循环

3、或者大数组或者对象才可能被注意到。  使用传地址赋值,简单地追加一个(&)符号到将要赋值的变量前(源变量)。例如,下列代码片断两次输出‘MynameisBob’:  〈?php  $foo='Bob';//Assignthevalue'Bob'to$foo  $bar=&$foo;//Reference$foovia$bar.  $bar="Mynameis$bar";//Alter$bar...  echo$bar;  echo$foo;//$fooisalteredtoo.  ?〉  需要注意的是只有命名变量才可以传地址赋值,这一点非常重要。  〈?php  $foo=

4、25;  $bar=&$foo;//Thisisavalidassignment.  $bar=&(24*7);//Invalid;referencesanunnamedexpression.  functiontest()  {  return25;  }  $bar=&test();//Invalid.  ?〉4.1.2预定义变量  PHP提供了大量的预定义变量。由于许多变量依赖于运行的服务器的版本和设置,及其它因素,所以并没有详细的说明文档。一些预定义变量在PHP以命令行形式运行时并不生效。  请优先使用可用的PHP预定义变量,如超级全局数组。  从PHP4.1.0开

5、始,PHP提供了一套附加的预定数组,这些数组变量包含了来自Web服务器(如果可用),运行环境,和用户输入的数据。这些数组非常特别,它们在全局范围内自动生效,例如,在任何范围内自动生效。为此,它们常因是"autoglobals"或者"superglobals"而闻名。(PHP中尚且没有一种可使用户自定义超级全局变量的机制)超级全局变量罗列于下文中;但是为了得到它们的内容和关于PHP预定义变量的进一步的讨论以及它们的本质,请参阅预定义变量。而且,你也将注意到旧的预定义数组($HTTP_*_VARS)仍旧存在。在PHP5.0.0中,长的PHP预定义数组可以通过设置register

6、_long_arrays来屏蔽。  可变变量:超级全局变量不能被用作可变变量。  如果某些variables_order中的变量没有设定,它们的对应的PHP预定义数组也是空的。4.1.3变量范围  变量的范围即它定义的上下文背景(译者:说白了,也就是它的生效范围)。大部分的PHP变量只有一个单独的范围。这个单独的范围跨度同样包含了include和require引入的文件。范例:  〈?php  $a=1;  include"b.inc";  ?〉  这里变量$a将会在包含文件b.inc中生效。但是,在用户自定义函数中,一个局部函数范围将被引入。任何用于函数内部的变量按缺省情

7、况将被限制在局部函数范围内。范例:  〈?php  $a=1;/*globalscope*/  functionTest()  {  echo$a;/*referencetolocalscopevariable*/  }  Test();  ?〉  这个脚本不会有任何输出,因为echo语句引用了一个局部版本的变量$a,而且在这个范围内,它并没有被赋值。你可能注意到PHP的全局变量和C语言有一点点不同,在C语言中,全局变量在函数中自动生效,除非被局部变量覆盖。这可能引起一些问题,有些人可能漫不经心的改变一个全局变量。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。