PHP常量值可以为变量吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP常量值可以为变量吗相关的知识,希望对你有一定的参考价值。
代码一:
<?php
define("Pi",3.1415926); //定义常量
function Power($r,$n)
echo "半径为".$r."的圆面积为".Pi*pow($r,$n);
Power(10,2);
?>
代码二:
<?php
$Pi=3.1415926;
define("Pi",$Pi); //定义常量,但是常量的值为变量。
function Power($r,$n)
echo "半径为".$r."的圆面积为".Pi*pow($r,$n);
Power(10,2);
?>
这两段代码执行的后果都是“半径为10的圆面积为314.15926”。
谁能告诉我这是为什么?
代码二中如果在
define("Pi",$Pi)
下面写
$Pi=1234
最後的结果也是一样。追问
不是说常量一经定义就不能再更改值了吗?代码二中我Pi可以重新赋很多次值。。
追答$Pi的确可以重新赋值很多次,但是常量PI有改变吗?
追问你的意思是常量Pi的值是$Pi,$Pi可以被赋值很多次,但常量Pi的值只能是$Pi。对吗?
追答或者我该这样说
一开始$Pi=1234
然後定义常量
define("Pi",$Pi)
这个时候常量Pi=1234
然後重新定义变量$Pi
$Pi=2345
这个时候常量Pi依然是1234,而不是2345.
你运行下应该就知道了:
<?php$Pi=3.14159;
define("Pi",$Pi);
$Pii = $Pi;
echo \'$Pi=\'.$Pi."</br>"; //结果为3.14159
echo \'$Pii=\'.$Pii."</br>"; //结果为3.14159
echo \'Pi=\'.Pi."</br></br></br>"; //结果为3.14159
$Pi=1234;
$Pii = $Pi;
define("Pi",$Pi);
echo \'$Pi=\'.$Pi."</br>";//结果为1234
echo \'Pi=\'.Pi."</br>";////结果为3.14159
echo \'$Pii=\'.$Pii."</br>";//结果为1234
?> 参考技术A define("Pi",3.1415926);
和
$Pi=3.1415926;
define("Pi",$Pi);
两个是一样的追问
不是说常量一经定义就不能再更改值了吗?代码二中我Pi可以重新赋值。。
追答这里 pi自始至终都没改变过
php ,常量
1.常量定义:
常量可以理解为值不变的量。常量值被定义后,在脚本的其他任何地方都不能改变。一个常量由英文字母,下划线和数字组成,但数字不能作为首字母出现。
2.定义变量:
在PHP中使用define()函数来定义常量,该函数的语法格式为:
define(string constant_name,mixed value,case_sensitive=true)
constant_name:常量名称,
value:常量的值,
case_sensitive:指定是否大小写敏感,设定true,表示不敏感。
3.判断一个变量是否已经定义:
要判断一个变量是否已经定义,可以使用defined()函数,函数的语法格式为:
bool defined(string constant_name);
参数consttant_name为要获取变量的名称,成功则返回true,失败则返回false.
4.获取变量:
获取变量的值有两种方法:
一是使用常量名直接获取值;
二是使用constant()函数,constant()函数和直接使用常量名输出的效果是一样的,但函数可以动态地输出不同的常量,在使用上要灵活方便的多。
5.php中一些预定义的常量:
_FILE_ : PHP程序文件名;
_LINE_ : PHP程序行数;
PHP_VERSION: PHP程序的版本,如3.0.8_dev;
PHP_OS:执行PHP解析器的操作系统名称,如window;
TRUE:该常量是一个真值(true);
FALSE:该值是一个假值(false);
NULL:一个null值;
E_ERROR:该常量指到最近的错误处;
E_WARNING:该常量指到最近的警告处;
E_PARSE:该变量指到解析语法有潜在问题处;
E_NOTICE:该常量为发生不寻常的提示但不一定是错误处。
以上是关于PHP常量值可以为变量吗的主要内容,如果未能解决你的问题,请参考以下文章