本章说说变量的定义。
如果对于变量和常量的定义,你会注意几个方面呢?你可能会想到:
如何定义变量,它和C# 等语言有什么不同呢? 变量区分大小写吗? PHP的变量还有其他重要的吗?
常量和变量的定义一样吗? 分别讲述吧。
1.如何定义变量,它和C# 等语言有什么不同呢?
PHP 中的变量用一个 美元符号后面跟变量名来表示。变量名是 区分大小写的。例如:
$var = ' Jim ' ;
$VAR = ' Kimi;
echo "$var,$VAR";//输出“Jim,Kimi"
?>
1 php
2 $foo = ' Bob ' ; // 赋值'Bob'给foo
3 $bar = & $foo ; // 通过$bar引用.注意&符号
4 $bar = " My name is $bar " ; // 修改 $bar
5 echo $bar ;
6 echo $foo ; // $foo 也修改了.
7 ?>
超全局变量 | 描述 |
$GLOBALS | 包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键名为全局变量的名称。从 PHP 3 开始存在 $GLOBALS 数组。 |
$_SERVER | 变量由 web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组 $HTTP_SERVER_VARS 数组(依然有效,但反对使用)。 |
$_GET | 经由 URL 请求提交至脚本的变量。类似于旧数组 $HTTP_GET_VARS 数组(依然有效,但反对使用)。 |
$_POST | 经由 HTTP POST 方法提交至脚本的变量。类似于旧数组 $HTTP_POST_VARS 数组(依然有效,但反对使用)。 |
$_COOKIE | 经由 HTTP Cookies 方法提交至脚本的变量。类似于旧数组 $HTTP_COOKIE_VARS 数组(依然有效,但反对使用)。 |
$_FILES | 经由 HTTP POST 文件上传而提交至脚本的变量。类似于旧数组 $HTTP_POST_FILES 数组(依然有效,但反对使用) |
$_ENV | 执行环境提交至脚本的变量。类似于旧数组 $HTTP_ENV_VARS 数组(依然有效,但反对使用)。 |
$_REQUEST | 经由 GET,POST 和 COOKIE 机制提交至脚本的变量,因此该数组并不值得信任。所有包含在该数组中的变量的存在与否以及变量的顺序均按照 php.ini 中的 variables_order 配置指示来定义。此数组在 PHP 4.1.0 之前没有直接对应的版本。参见 import_request_variables()。 |
$_SESSION | 当前注册给脚本会话的变量。类似于旧数组 $HTTP_SESSION_VARS 数组(依然有效,但反对使用) |
1 php
2 $var = 0 ;
3 function test( $index )
4 {
5 $var = $var + 1 ;
6 echo " The " . $index . " number is " . $var . "
" ;
7 }
8 test( 1 );
9 test( 2 )
10 ?>
The 1 number is 1
The 2 number is 2
The 1 number is 1
The 2 number is 1
1 php
2 $var = 0 ;
3 function test( $index )
4 {
5 global $var ;
6 $var = $var + 1 ;
7 echo " The " . $index . " number is " . $var . "
" ;
8 }
9 test( 1 );
10 test( 2 )
11 ?>
1 php
2 $var = 0 ;
3 function test( $index )
4 {
5
6 $GLOBALS [ " var " ] = $GLOBALS [ " var " ] + 1 ;
7 echo " The " . $index . " number is " . $GLOBALS [ " var " ] . "
" ;
8 }
9 test( 1 );
10 test( 2 )
11 ?>
1 php
2 function Test()
3 {
4 static $a = 0 ;
5 echo $a . "
" ;
6 $a ++ ;
7 }
8 Test();
9 Test();
10 ?>
1
2
1 php
2 $a = " hello " ;
3 $hello = " world " ;
4 echo $a . " " . $ $a ;
5 ?>
1 php
2 define ( " CONSTANT " , " Hello world. " );
3 echo CONSTANT ; // outputs "Hello world."
4 echo Constant ; // outputs "Constant" and issues a notice.
5
6 define ( " GREETING " , " Hello you. " , true );
7 echo GREETING; // outputs "Hello you."
8 echo Greeting; // outputs "Hello you."
9
10 ?>
常量和变量不同:
常量前面没有美元符号($);
常量只能用 define() 函数定义,而不能通过赋值语句;
常量可以不用理会变量范围的规则而在任何地方定义和访问;
常量一旦定义就不能被重新定义或者取消定义;
常量的值只能是标量。