问个问题啊

来源:4-1 PHP-什么是常量

慕姐4424294

2015-12-01 20:44

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

写回答 关注

6回答

  • 3水淼渺
    2015-12-03 10:32:06
    已采纳

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

    慕姐4424...

    非常感谢!

    2015-12-03 10:34:32

    共 1 条回复 >

  • kertz
    2016-07-08 11:18:06

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

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

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

  • wink12
    2015-12-22 15:59:11

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

  • RockenRoll
    2015-12-02 11:44:59

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

    慕姐4424...

    删除 就出错了...

    2015-12-02 19:50:38

    共 1 条回复 >

  • RockenRoll
    2015-12-02 11:02:35

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

    慕姐4424...

    可是 还有这句啊define($p,3.14); 这个 难道不是 让$p 成为一个等于3.14的常量么? 既然有了这句 为什么 下面 输出$p 还是 PII呢...

    2015-12-02 11:34:59

    共 1 条回复 >

  • RockenRoll
    2015-12-02 10:05:31

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

    慕姐4424...

    没加引号啊 这是代码 <?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 10:30:12

    共 1 条回复 >

PHP入门篇

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

456652 学习 · 6590 问题

查看课程

相似问题