“使用未定义的常量”注意事项,但应定义常量

时间:2011-05-11 20:42:31

标签: php

有三个文件:common.php,controller.php和user.php。

文件common.php看起来像:

<?php
define("MAXIMUM_NAME_LENGTH", 50);
?>

文件controller.php看起来像:

<?php
include("common.php");
include("user.php");
$user = new user();
?>

文件user.php看起来像:

<?php
class user{
private $var = MAXIMUM_NAME_LENGTH;
}
?>

执行脚本时会发出通知:注意:使用未定义的常量MAXIMUM_NAME_LENGTH - 在xxx行的/.../controller.php中假设为“MAXIMUM_NAME_LENGTH”。我想在common.php中共享其他文件之间的定义值。如何以适当的方式做到这一点?

2 个答案:

答案 0 :(得分:1)

通常,您将使用将要使用它们的文件包含的所有定义。 IE:在你的例子中,让类文件有一个$class->setMaxNameLength();方法并通过那里传递名称长度define,这样就不会给你一个错误。

答案 1 :(得分:1)

error_reporting(E_ALL);之前放置include("common.php");行。

很可能你会看到类似的东西:

Warning: include(common.php) [function.include]: failed to open stream: No such file or directory in xxx

表示您的三个文件不在同一个文件夹中,或者在include_path中不在其中的路径中,或者它们的组合中。

修改

如果您使用Suhosin,请检查suhosin.executor.include.*设置。