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

初学者 不知道想法对不对,请帮忙看一下.

初学者  不知道想法对不对,请帮忙看一下.

<?php 

define("PI1",3.14);

$p = "PI1";

$p1 = PI1;

$is1=defined($p);

$is2=defined("PI2");

$is3=defined($p1);

var_dump($is1);  //bool(true)

var_dump($is2);  //bool(false)

var_dump($is3);  //bool(false)

var_dump($p);    //string(3) "PI1"

var_dump($p1);   //float(3.14)

echo $p."<br/>"; //PI1

echo $p1."<br/>";//3.14

echo PI1."<br/>";//3.14

echo "PI1"."<br/>";//PI1

echo $is1."<br/>"; //1

?>

写了这一段,因为发现例子中 并没有将$p赋值自定义常量 PI1=3.14,只是赋值了一个字符串PI1

而上面代码中$p1才被赋值自定义常量 PI1=3.14,但是defined 却显示false

例子里面define的操作 不仅没有用 反而会让人误会


正在回答

3 回答

$p = "PI1";      $is1=defined($p);     var_dump($is1);  //bool(true)          var_dump($p);    //string(3) "PI1"

$p相当于赋值字符串,不是定义常量

define("PI1",3.14);

$p1 = PI1;       $is3=defined($p1);    var_dump($is3);  //bool(false)          var_dump($p1);   //float(3.14)

$p1通过接受已定义常量PI1的值3.14,但是没接受定义常量的过程,所以$p1还是个变量

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

慕粉3554844 提问者

constant($p)=3.14返回字符串对应常数值吗
2016-07-12 回复 有任何疑惑可以回复我~

在设定以后,常量的值无法更改

常量名不需要开头的美元符号 ($)

作用域不影响对常量的访问

常量值只能是字符串或数字

http://www.w3school.com.cn/php/func_misc_define.asp


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

在设定以后,常量的值无法更改

常量名不需要开头的美元符号 ($)

作用域不影响对常量的访问

常量值只能是字符串或数字

http://www.w3school.com.cn/php/func_misc_define.asp

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

慕粉3554844 提问者

在例子中echo $p的话 得到是字符串PI1 并不是我们之前定义的常量PI1=3.14 上面这一点对不对? 例子中就算没有定义define("PI1",3.14);这一步结果也是不变的, 因为下面根本没有用到这一条件 这个对不对? 被弄迷糊了
2016-07-12 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

初学者 不知道想法对不对,请帮忙看一下.

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