<?php
define("PI1",3.14);
$p = "PI1";
$is1=defined($p);
$is2=defined("PT2");
echo $p;
echo "<br>";
var_dump($is1);
var_dump($is2);
?>
$p输出后 已经是个字符串了。为何还会被defined判断 是否是一个常量存在?
echo $p; 这会输出时,相当于输出变量名为P的变量,p变量的值是"PI1"。
var_dump($is1);相当于下边
var_dump(defined($p));也就是var_dump(defined(PI1));判断这个是不是true
上边说的echo $p; 输出后变成字符串了,这里并没有改变什么。没有改变数据类型内容啥的,echo只是单纯的输出。
你可能理解为echo输出后$p就不再是$p了,就是PI1了,$p这个变量用完就销毁了或者说改变了。这是整体用的变量,只要不是被重新赋值$p=abc,他的性质都不变的