【发布时间】:2010-11-29 12:57:16
【问题描述】:
嗨,我是 php 新手,当我遇到 define('INCLUDE_CHECK',true);我无法理解它的用途?
请。解释一下。
谢谢! 萨加尔
【问题讨论】:
标签: php phpmyadmin
嗨,我是 php 新手,当我遇到 define('INCLUDE_CHECK',true);我无法理解它的用途?
请。解释一下。
谢谢! 萨加尔
【问题讨论】:
标签: php phpmyadmin
这是该应用程序稍后使用的常量。 Define() 用于创建这些常量。通常这用于配置数据。以后要使用这个常量,您只需在代码中使用字符串 INCLUDE_CHECK,就像它是一个没有 $ 的变量一样。
所以
if(INCLUDE_CHECK)
{
// Do code that only should happen if you want it to.
}
【讨论】:
只是对 DampeS8N 答案的补充,这是正确的。
我看了php.net的链接http://in2.php.net/manual/en/function.define.php 下面的示例清楚地表明,任何值都可以在定义函数中用于将变量定义为常量,而 INCLUDE_CHECK 只是一个变量,我认为它是某种 php 功能;)
<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // outputs "Constant" and issues a notice.
define("GREETING", "Hello you.", true);
echo GREETING; // outputs "Hello you."
echo Greeting; // outputs "Hello you."
?>
@DampeS8N 请。如有错误请评论!
感谢大家的回答!
【讨论】:
INCLUDE_CHECK 不是 PHP 本身的特性,只是某些人用 PHP 编写的代码。第一次点击on google 向我们展示了一个配置文件,用户试图通过检查变量是否已定义来保护该文件。
我在google上找到的sniped中采取的做法是这样的
下面的例子应该更清楚
foo.php
<?php
defined('INCLUDE_CHECK', true);
require_once 'config.php';
?>
config.php
<?php
if (!defined('INCLUDE_CHECK')) { die ('invalid access'); }
echo 'Hello World!';
?>
如果用户直接访问 config.php,那么 INCLUDE_CHECK 没有定义,所以脚本会死掉,提示无效访问。如果用户访问 foo.php,它将定义 INCLUDE_CHECK 然后包含 config.php,然后它将回显 Hello World。
顺便说一句,这是一种非常糟糕的保护配置文件的方法;请参阅my post here 了解更简单可靠的方法。
【讨论】: