中易网

PHP 头部defined('IN_SYS')) 有什么作用?

答案:3  悬赏:40  
解决时间 2021-01-11 05:58
  • 提问者网友:饥饿走向夜
  • 2021-01-11 01:28
PHP 头部defined('IN_SYS')) 有什么作用?
最佳答案
  • 二级知识专家网友:怙棘
  • 2021-01-11 02:09
defined() 函数检查某常量是否存在 , 存在的话返回true ;
在A页面使用define定义常量x , 在B页面使用defined来确认常量存不存在 , 如果不存在 , 就是非法包含.
通常define和defined配合使用 , 可以用来控制文件的访问权限,比如,我们不希望一个模板文件被直接通过链接地址被别人访问。我们可以在每个模板文件头,写上defined('XXX') or die()。
全部回答
  • 1楼网友:孤独的牧羊人
  • 2021-01-11 04:50
这是定义常量的,如果在公共文件中引用了此声明之后,在页面其他位置都是使用 IN_SYS ,代表某项值的。其实这个声明类似于变量,不同之处在于:
在设定以后,常量的值无法更改
常量名不需要开头的美元符号 ($)
作用域不影响对常量的访问
常量值只能是字符串或数字
使用方法:
define("GREETING","Hello world!");
echo constant("GREETING");
?>
  • 2楼网友:舍身薄凉客
  • 2021-01-11 03:18
在很多页面 经常会看到下面 两句
1. defined('IN_SYS')); //检查 是否定义了 常量
这个代码后面应该还有个 结束程序的代码。
禁止 这个文件单独执行的 或被访问。 都是被 include 到 其他页面的。
2. define('IN_SYS'), true); //定义常量
一般在一些特定的入口页面 才会有这个 代码,
就是说 必须从 这个页面访问。追问嗯呢,我想知道的再深一点,就是说,如果“defined('IN_SYS')); //检查 是否定义了 常量”去掉了会有什么后果么,比如说我在config.php(里面存有数据库帐号和密码),这个文件有“defined('IN_SYS')); //检查 是否定义了 常量”,但是如果去掉了别人能拿到config.php里面的资料吗?追答就算去掉了 里面 PHP数据是 拿不到的,
但是有些本该导入的 PHP文件 如果别人直接打开的话 就会出现程序错误, 显示错误是不应该的。别人可以根据错误信息 也能得到服务器相关信息。
还有一些模板文件 如果没有加上这个代码, 直接就可以访问 查看,
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息