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常量值可以为变量吗的主要内容,如果未能解决你的问题,请参考以下文章

可以使用命令define定义变量吗

php中的定义的常量可以在js、jqurey中使用吗?

php ,常量

php之常量

PHP常量字符串变量

java接口中可以定义常量变量吗