php的常量和变量,php的常量和变量

需要注意的是标识符必须以字母或者下划线开头,并且只能包括字母、数字和下划线。 常量的定义

顾名思义,常量是一个不能改变的量,在脚本执行期间常量的值不能改变。

常量默认为大小写敏感,也就是区分大小写。

常量可以用define函数来定义,define函数的语法如下:

Bool define(string name ,value [,bool case_insensitive])

其中name指常量名。value指常量的值,常量的值必须是标量,也就是专门用于表示一个特定值的量。case_insensitive表示常量名是否为大小写敏感的,如果为TRUE,则表示常量名是大小写不敏感的;反之,则表示常量名是大小写敏感的,默认值为FALSE。

以下的代码是一个使用define函数定义常量的例子。

<?php   define(“Z”, “phpdo.net./n”);                         //定义Z为常量,case_insensitive为FALSE,区分大小写  echo Z.”
”;                                              //输出Z  echo z.”
”;                                               //变量Z拼写错误,这时不会输出Z的值,输出z  define(“L”, “phpdo.net./n”, TRUE);             //设置case_insensitive为TRUE,不区分大小写  echo L.”
”;                                              //输出phpdo.net  echo l.”
”;                                               //输出phpdo.net  ?>

结果:

phpdo.net.   z  phpdo.net.   phpdo.net.

变量的定义

变量是用来临时存储变量的值。

变量名称是大小写敏感的,但是与常量不同的是,指定变量的时候,没有大小写敏感选项,即永远是大小写敏感的。

PHP中的变量不需要先定义后使用,在变量第一次使用的时候,变量被自动定义。但是类中的变量需要先定义,后面后详细介绍。

PHP提供两种方式对变量进行赋值:

传值赋值和传地址复制。如下:

使用传值赋值对变量进行赋值时,整个原始表达式的值将被复制给目标变量。这时,改变原始表达式时,目标变量的值将不会被影响。

使用传值赋值对变量进行赋值时,目标变量简单的引用了原始变量。改变目标变量将影响到原始变量,反之亦然。注:有汇编基础的PHP爱好者将会很容易理解这点。

代码如下:

<?php   $name = ‘php’;         //对变量$name进行赋值(传值赋值)  $name_b = $name;     //对变量$name_b 进行赋值(传值赋值)  $addr = &$name;       //对变量$addr进行赋值(传地址赋值)  $name = “phpdo”;       //改变$name的值  echo $name.”
”;     //输出$name,会发现$name的值发生了变化  echo $name_b.”
”; //输出$name_b,php  echo $addr.”
”;    //输出$addr,会发现$addr的值发生了变化  $addr = “phpdo.net”;  //因为这里$addr是$name的地址,改变目标变量影响了原始变量,反之亦然。  echo $name.”
”;    //输出$name,会发现$name的值发生了变化  echo $addr.”
”;    //输出$addr,会发现$addr的值发生了变化  ?>

结果:  phpdo  php  phpdo  phpdo.net  phpdo.net

本地变量、全局变量和静态变量。

本地变量:在PHP中,按照缺省情况,任何用于函数内部的变量都将被限制在局部函数范围内。

下面是个说明本地变量的例子:

<?php   $a = phpdo.net;  function func()                                    //函数func {  echo “变量phpdo.net在函数内部的调用: “.$a.”
”; //函数内部的变量调用,可以看到$a没有被调用 }  func();  echo “变量phpdo.net在函数外部的调用: “.$a.”
”; //函数外的变量调用,$a被调用 ?>

结果:

变量phpdo.net在函数内部的调用:  变量phpdo.net在函数外部的调用: phpdonet

分析:可以看到3——6行$a没有被定义。

下面这段代码,通过形参将$a得值传入了函数,代码如下:

<?php   $a = phpdo.net;               //函数func  function func($a) {  echo “变量phpdo.net在函数内部的调用: “.$a.”
”; //因为func有了形参$a,值phpdo.net可以被正确地传入了函数。 }  func($a);                                      echo “变量phpdo.net在函数外部的调用: “.$a.”
”;   //输出phpdo.net ?>

结果:

变量phpdo.net在函数内部的调用: phpdonet  变量phpdo.net在函数外部的调用: phpdonet

全局变量:任何可以应用于全部PHP脚本的变量。

1、使用global关键字;代码如下:

<?php   $a = phpdo.net;  function func()           //函数func {  global $a;                //在函数内部,使用global关键字标示$a为全局变量  echo “变量phpdo.net在函数内部的调用: “.$a.”
”;   //输出phpdo.net }  func();  echo “变量phpdo.net在函数外部的调用: “.$a.”
”; //输出phpdo.net ?>

结果:

变量phpdo.net在函数内部的调用: phpdonet  变量phpdo.net在函数外部的调用: phpdonet

2、使用特殊的PHP自定义$GLOBALS数组;代码如下:

<?php   $a = phpdo.net;  function func() {                                 echo “变量phpdo.net在函数内部的调用: “.$GLOBALS["a"].”
”; //使用$GLOBALE["a"]数组申明$a为全局变量 }  func();  echo “变量phpdo.net在函数外部的调用: “.$a.”
”;                    //输出phpdo.net ?>

结果:

变量phpdo.net在函数内部的调用: phpdonet  变量phpdo.net在函数外部的调用: phpdonet

静态变量:PHP中的另一个重要类型,静态变量仅在局部函数中存在,但当程序执行离开此作用域时,其值并不丢失。

代码如下:

<?php   function func() {  static $php = 1;                            //在函数内部,使用static关键字标示$a为静态变量  echo “变量php在函数内部 “.$php.”
”;  $php++; }  func();  func(); ?>

结果:

变量php在函数内部 1  变量php在函数内部 2

分析:可以看到在func()执行后,$a并没有被重新初始化,还是为1,上述代码运行后的结果$a为3。这点各位应该没有异议吧?

动态变量:动态变量的变量名是可变的,也就是通过另一个变量传递的,在PHP中,对动态变量使用”$$”两个美元符号进行定义。

代码如下:

<?php   $var_name = “php”;      //定义变量$var_name的值  $$var_name = “phpdo.net”;  //使用$var_name的值(php)作为这个变量的变量名  echo $var_name.”
”;  //输出$var_name,php  echo $$var_name.”
”; //输出phpdo.net  echo $php.”
”;       //使用这个方法可以实现同样的变量调用,输出phpdo.net ?>

结果:

php  phpdo.net  phpdo.net

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值