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就消失了? 展开
define('db_host', $ini) $ini的值是从配置项文件里读取的。
在b.php里inlude a.php 然后在b.php里echo db_host; 然后我手动修改ini里的内容,为什么我修改后刷新,echo出来内容会变呢?
不是说define 常量是不会改变的吗?
难道函数结束define就消失了? 展开
3个回答
展开全部
常量 和变量 其实都是赋值的可变量 不同的是 常量只能在声明的时候赋值,并不能在运行时改变
如果 是这样
define('db_host', $ini) ;
define('db_host','23213') ;
db_host 的值 还是$ini 而不会是后面的赋值 所以 db_host的值 只会是$ini
$ini 赋值给 db_host 你直接修改$ini的内容 db_host肯定会改变的
如果 是这样
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 是由上至下执行 都有自己的作用域 除非你先声明常量 再判断 不然都是 假
展开全部
用变量初始化常量 修改的是变量 常量的值肯定会变
就好比一些PHP程序在安装的时候都要求填写数据库地址、用户名、密码等等
这其中的地址、用户名、密码就是常量的值,就是ini。
你写的地址是localhost 值就是localhost
我写的是192.168.0.0.1值就是192.168.0.0.1
这个值一旦定义 则在整个程序任何地方调用都是不变的
就好比一些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始终都会输出假
然后才会执行下一步
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看下你的常量是不重复定义了
你那个常量的值其实就是你配置文件的那个值,你把配置文件改了他的值肯定会变啊
你那个常量的值其实就是你配置文件的那个值,你把配置文件改了他的值肯定会变啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询