为了账号安全,请及时绑定邮箱和手机立即绑定

问个问题啊

为什么 我下面把 echo "PII"  换成 echo $p 居然 输出的是PII呢...我不懂  PII 等于3.14 而且上面$p=PII了  那么$p也应该是3.14才对啊... 怎么会 输出PII呢  谁知道 给我详细 解释下 谢谢啊

正在回答

6 回答

定义的是$p变量,存放的是字符串'PII',define($p,3.14相当于define("PII",3.14), $p仍然是一个变量,值为“PII”。

2 回复 有任何疑惑可以回复我~
#1

慕姐4424294 提问者

非常感谢!
2015-12-03 回复 有任何疑惑可以回复我~

define(string $constant_name, mixed $value[, $case_sensitive = true])

个人认为是由于第一个参数类型必须是String字符类型,所以变量在此函数内直接使用了本来的赋值后的字符,

当echo 变量 时,echo是输出变量的内容,所以echo还是此变量的内容(本例子是字符,所以输出的也是字符)

0 回复 有任何疑惑可以回复我~

在define($p,3.14)中,$p被披上了一个壳,也就是常量。而$p="PII"中$p是一个变量,这两个$p是不一样的,你输出$p.电脑判断的$p就是一个变量。

2 回复 有任何疑惑可以回复我~

那你把$p = "PII"这句话删除了试一下

0 回复 有任何疑惑可以回复我~
#1

慕姐4424294 提问者

删除 就出错了...
2015-12-02 回复 有任何疑惑可以回复我~

你那个$p = "PII";是把PII当成一个字符串传给$p了。

0 回复 有任何疑惑可以回复我~
#1

慕姐4424294 提问者

可是 还有这句啊define($p,3.14); 这个 难道不是 让$p 成为一个等于3.14的常量么? 既然有了这句 为什么 下面 输出$p 还是 PII呢...
2015-12-02 回复 有任何疑惑可以回复我~

你是加了双引号么?加双引号被当做字符串了吧

0 回复 有任何疑惑可以回复我~
#1

慕姐4424294 提问者

没加引号啊 这是代码 <?php $p = "PII"; define("PI",3.14); define($p,3.14); echo PI; echo "<br />"; echo $p; echo "<br>"; var_dump($p) ?> 这是输出的 3.14 PII string(3) "PII" 得到的是PII..我不懂为什么..既然PII 是常量了还是3.14了 $p=“PII” 那么 为什么输出$p不是3.14呢
2015-12-02 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
PHP入门篇
  • 参与学习       455961    人
  • 解答问题       6306    个

PHP入门教程轻松学习,行业大牛帮您快速掌握PHP编程基础知识。

进入课程

问个问题啊

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信