<?php
$p = "PII";
define("PI",3.14);
define($p,3.14);
echo PI;
echo "<br />";
echo PII;
echo "<br />";
echo $p;
?>
输出结果为:
3.14
3.14
PII
这个例子可以发现:
在 $p="PII"后,define($p,3.14) 实际上是 define("PII',3.14),而 $p仍然是等于 PII;
同时尝试了将例子中的PI和PII去除引号,发现结果一样;
想不明白的主要有两点:
1、赋值过程中 加不加引号的区别?
2、$p="PII" 后,实际等于是将变量 $p的至赋值给常量PII?
<?php define("PI",3.14); define("PII",3.14); $p = PII; echo PI; echo "<br />"; echo PII; echo "<br />"; echo $p; ?>
这样运行的结果就是3.14 3.14 3.14,你在把$p = PII;加上引号你就知道区别了,加上引号就是字符串不加就是常量,还有$p="PII"的意思是将字符串PII赋值给变量$p
<?php
$p = PII; //$p赋值为常量PII
echo $p; //输出为常量,此时为PII本身
echo "<br />";
define("PI",3.14);
define("PII",3.14);//
$p ="PII"; //$p赋值为字符串的PII
echo PI;
echo "<br />";
echo PII;
echo "<br />";
echo $p; //输出为字符串PII
echo "<br />";
$p = PII; //$p赋值为常量PII,此时PII已定义为3.14
echo $p; //输出为常量
?>
这个例子应该可以解释得明白了。
又测试了几次,发现在$p="PII"后,对于"PII"的赋值,是不会影响到$p的值的。感谢您的解答!