找不到PHP类,但它已包含在内

sia*_*one 36 php

我包含了一个PHP类

require_once($ENGINE."/classUser.php");
Run Code Online (Sandbox Code Playgroud)

但是当代码执行时,我收到此错误:

致命错误:第12行的C:\ xampp\htdocs\WebName\resources\engine\ajax\signup.php中找不到"用户"类

我仍然无法弄清楚问题是什么.我99%肯定这是正确的.

"$ ENGINE"是正确的,类也是正确的(Netbeans建议我使用类方法和变量).

signup.php:

<?php

/* Created on: 13/12/2011
 * Author: 
 * 
 * Description: User signup procedure.
 */

require_once("../settings.php");
require_once($ENGINE."/classUser.php");

$user = new User();
$user->createUser($_POST["username"], $_POST["email"], $_POST["password"]);


?>
Run Code Online (Sandbox Code Playgroud)

classUser.php:

<?php

/* Created on: 13/12/2011
 * Author: 
 * 
 * Description: This class manages users.
 */

require_once("settings.php");
require_once($LIBRARY."/cassandraphp/cassandra.php");

class User {

    public function createUser($username, $email, $password){
        $cassandra = Cassandra::createInstance($CASSANDRASERVER);
        $cassandra->set(
                "user.".$username,
                array(
                    'ID' => uniqid(),
                    'Username' => $username,
                    'Email' => $email,
                    'Password' => $password
                )
        );
    } 
}

?>
Run Code Online (Sandbox Code Playgroud)

jar*_*raj 43

检查以确保您的环境不会对您的开始标记感到挑剔.我的配置需要:

<?php
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用:

<?
Run Code Online (Sandbox Code Playgroud)

然后我得到了和你一样的错误.

  • 这是我遇到的问题.我的解决方案是将以下内容添加到php.ini:short_open_tag = On请参阅:http://php.net/manual/en/ini.core.php#ini.short-open-tag (5认同)
  • 如果您无法访问php.ini,可以将其添加到.htaccess:php_value short_open_tag 1 (3认同)

Dej*_*vic 33

if ( ! class_exists('User')) 
    die('There is no hope!');
Run Code Online (Sandbox Code Playgroud)

  • 根据"死"的消息,你要找的班级应该是"希望". (26认同)
  • *我们都注定了!DOOOMED!* (12认同)

Rai*_*616 16

我有这个问题,解决方案是名称空间.包含的文件包含在自己的命名空间中.明显的事情,容易被忽视.

  • 该死的为什么你给我带来了我的旧代码的记忆,这太可怕了:( (2认同)

olg*_*lga 8

也可能是,您错误地注释掉了像 require_once 这样的行__DIR__.'/../vendor/autoload.php'; --- 您的命名空间未加载。

或者您忘记向 Composer 添加类映射,因此类不会自动加载且不可用。例如,

"autoload": {
    "psr-4": {
        "": "src/"
    },
    "classmap": [
        "dir/YourClass.php",
    ]
},
"require": {
    "php": ">=5.3.9",
    "symfony/symfony": "2.8.*",
Run Code Online (Sandbox Code Playgroud)


Min*_*ras 7

首先检查是否$ENGINE."/classUser.php"是现有文件的有效名称.试试这个:

var_dump(file_exists($ENGINE."/classUser.php"));
Run Code Online (Sandbox Code Playgroud)

  • 如果无法找到或读取文件,则无用... require_once()将以致命错误终止脚本. (18认同)
  • 'http:// localhost'有点担心......为什么你不使用本地文件系统? (3认同)
  • 您可以包含URL,但在您的情况下,您尝试不包含文件的内容,但其输出当然是空的. (2认同)