致命错误:无法声明类错误,因为该名称已在使用中
Posted
技术标签:
【中文标题】致命错误:无法声明类错误,因为该名称已在使用中【英文标题】:Fatal error: Cannot declare class Error, because the name is already in use 【发布时间】:2019-02-17 11:39:48 【问题描述】:我不明白为什么我的机器运行 php 7.2.9 会出现这个错误:
致命错误:无法声明类错误,因为该名称已在第 3 行的 controllers\error.php 中使用
我有一个名为 controllers/error.php
的文件,其中包含:
<?php
class Error
function __construct()
echo 'Error: 404 not found the file.';
同时,我有一个名为 /index.php
的文件,其中包含:
require "controllers/error.php";
$controller = new Error;
即使我从require
更改为require_once "controllers/error.php"
,它仍然会报告相同的消息。
【问题讨论】:
【参考方案1】:Error
在 PHP 7 中是 a built-in class。
因此,您不能创建class Error
。
重命名该类,或将其命名为in a namespace 以避免冲突。
(或者,作为第三种选择,您可以考虑使用/扩展内置类,而不是从头开始制作自己的错误处理系统。)
【讨论】:
【参考方案2】:如前所述,'Error' 是 PHP 7 中的内置类。您有多种选择:
(1) 将你的类放在命名空间中
<?php
namespace MyApp\Errors;
class Error
那么当你使用它时...
$error = new \MyApp\Errors\Error;
(2) 使用不同的名称,例如 AppError。
<?php
class AppError
推荐:
一般来说,类应该放在同名的文件中 作为类本身。 “AppError”类应该在文件“AppError.php”中
如果您使用命名空间,则命名空间应与所在的目录匹配 该文件位于。如果您有 MyApp\Errors,您可以将其放入“MyApp/Errors/Error.php”。
“MyApp\Errors\Error”类将位于 MyApp/Errors/Error.php 目录中。
【讨论】:
以上是关于致命错误:无法声明类错误,因为该名称已在使用中的主要内容,如果未能解决你的问题,请参考以下文章
致命错误:无法声明类 ProductFilterIterator,因为该名称已在
以 Clover XML 格式生成代码覆盖率报告 ... PHP 致命错误:无法声明类 ...,因为名称已在