我的代码不读取PHP中定义的常量
大家好 我有一个PHP项目,分为管理部分和客户端部分 客户端ecd工作得非常好。但是我无法访问我的管理部分,它会显示错误信息 致命错误:在第30行的E:\wamp\www\dfms\admin\index.php中找不到类“ClsBase” 更新 第28行是我的代码不读取PHP中定义的常量,php,constants,Php,Constants,大家好 我有一个PHP项目,分为管理部分和客户端部分 客户端ecd工作得非常好。但是我无法访问我的管理部分,它会显示错误信息 致命错误:在第30行的E:\wamp\www\dfms\admin\index.php中找不到类“ClsBase” 更新 第28行是$base_obj=new ClsBase() 更新1 第14行:包含一次(ADMIN_CLASS_DIR.“clsadmuser.php”) 但是我已经在我的adminconfig.php中定义了所有常量,并且我正在使用该常量给出该文件的路
$base_obj=new ClsBase()代码>
更新1
第14行:包含一次(ADMIN_CLASS_DIR.“clsadmuser.php”)
但是我已经在我的adminconfig.php
中定义了所有常量,并且我正在使用该常量给出该文件的路径,以及该文件在所需文件夹中的路径
您能帮我解决什么问题吗?看起来您希望设置一个常量ADMIN\u CLASS\u DIR
,但实际情况并非如此。PHP将发出通知,然后假设常量是字符串文字。你在哪里定义这个常数?您需要在脚本中包含该代码。看起来您在到达使用该常量的代码块之前没有定义该常量
不过你应该得到一个通知:
Notice: Use of undefined constant ADMIN_CLASS_DIR - assumed 'ADMIN_CLASS_DIR'
这表示PHP将假定它是一个字符串。并以这种方式对待它
免责声明/主题外:
PHP真的有一些奇怪的问题如果看不到代码,很难说。有两个可能的问题
ADMIN\u CLASS\u DIR
未设置,因此PHP将发出通知
并默认为ADMIN\u CLASS\u DIR
。您的代码如下所示:
include_once(ADMIN_CLASS_DIR . 'ClsAdminUser.php');
要修复它,只需定义目录:
if (!defined('ADMIN_CLASS_DIR')) {
define('ADMIN_CLASS_DIR', 'path/to/dir');
}
您试图在字符串文本中使用它:
include_once('ADMIN_CLASS_DIR/ClsAdminUser.php');
PHP中的常量不是这样工作的。它们仅在字符串外部解析。因此,您可以选择:
include_once(ADMIN_CLASS_DIR . '/ClsAdminUser.php');
或者,如果需要将常量定义为字符串,也可以这样做:
include_once(constant('ADMIN_CLASS_USER') . '/ClsAdminUser.php');
要判断是否定义了常数,请使用函数。如果定义了常量,它将返回true
如果你想要更好的帮助,发布一些代码 你能把密码寄出去吗?如果打印常量,会显示什么?因此登录文件位于E:\wamp\www\dfms\admin\login.php以外的其他位置。。。请发布调用该文件的PHP代码。如果没有设置常量,它只会打印我“ADMIN\u CLASS\u DIR”,这正是您将得到的结果。如果常量不可用,PHP会假定它是字符串。但是你应该得到一个通知(/警告不知道是哪一个)。我喜欢这些用户害怕把他们的代码显示出来。伙计们,我们需要密码或者我们该怎么解决?猜猜看?另外,错误在第30行,您发布了第28/14行?好的,我能猜到第30行是什么,但是呢!没有人会偷你的密码!这是我面临这个问题的管理部分,相反,我的客户端部分(前端)工作得很好,在其他机器上没有这样的错误。最有可能的是,include\u路径
在其他机器上是不同的。它只打印我“admin\u CLASS\u DIR”你能显示代码吗?我想你没有设置你的常数/在你尝试使用它的地方不可用。我已经在我得到错误的地方发布了代码行,请查看update@OmThe:如警告所示,login.php第14行的代码是什么(在第14行的E:\wamp\www\dfms\admin\login.php中)?你发布的代码与问题没有直接关系…@ircmaxell它的主要问题是它在上找不到类文件,但我在所需的位置有这些文件location@OMT:张贴第14行,这是警告告诉您问题所在的位置。更好的办法是,将include_once
更改为require_once
,因为您需要它继续(但仍要发布行)。我的WAMP设置中有问题吗?同样的代码在我办公室的另一台机器上运行