php define定义常量

我在a.php里define一个常量define('db_host',$ini)$ini的值是从配置项文件里读取的。在b.php里inludea.php然后在b.php里... 我在a.php里 define 一个常量
define('db_host', $ini) $ini的值是从配置项文件里读取的。
在b.php里inlude a.php 然后在b.php里echo db_host; 然后我手动修改ini里的内容,为什么我修改后刷新,echo出来内容会变呢?
不是说define 常量是不会改变的吗?
难道函数结束define就消失了?
展开
 我来答
hj2002007
推荐于2016-10-24 · TA获得超过527个赞
知道小有建树答主
回答量:207
采纳率:0%
帮助的人:146万
展开全部
常量 和变量 其实都是赋值的可变量 不同的是 常量只能在声明的时候赋值,并不能在运行时改变

如果 是这样
define('db_host', $ini) ;
define('db_host','23213') ;

db_host 的值 还是$ini 而不会是后面的赋值 所以 db_host的值 只会是$ini

$ini 赋值给 db_host 你直接修改$ini的内容 db_host肯定会改变的
追问
if(defined('a')){echo"真";}else{echo"假";define('a','123');} 是不是每次刷新页面 都是  假?
追答
是的 因为php 是由上至下执行 都有自己的作用域   除非你先声明常量 再判断  不然都是 假
Geeker数字生活
2013-12-31
知道答主
回答量:39
采纳率:0%
帮助的人:17.7万
展开全部
用变量初始化常量 修改的是变量 常量的值肯定会变
就好比一些PHP程序在安装的时候都要求填写数据库地址、用户名、密码等等
这其中的地址、用户名、密码就是常量的值,就是ini。
你写的地址是localhost 值就是localhost
我写的是192.168.0.0.1值就是192.168.0.0.1
这个值一旦定义 则在整个程序任何地方调用都是不变的
追问
if(defined('a'))
{
echo"真";
}else{
echo"假";
define('a','123');
}

是不是每次刷新页面 都是 假?
有没有一个变量不会丢失的?
追答
恩 是假的
程序是按顺序执行的 在用defined判断之前并没有定义常量A始终都会输出假
然后才会执行下一步
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
有问题WO来答
2013-12-31 · TA获得超过382个赞
知道小有建树答主
回答量:749
采纳率:62%
帮助的人:166万
展开全部
看下你的常量是不重复定义了

你那个常量的值其实就是你配置文件的那个值,你把配置文件改了他的值肯定会变啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式