【问题标题】:After submit: PHP Fatal error: Class not found in C:\xampp\htdocs\提交后:PHP 致命错误:C:\xampp\htdocs\ 中找不到类
【发布时间】:2019-08-28 18:35:12
【问题描述】:

当我执行 URL http://localhost/debug/index.php 时,我看到了我想要的。然后我按下按钮(提交),我看到了这个错误:

( ! ) 致命错误:未捕获的错误:在 C:\xampp\htdocs\Debug\classA.php 在第 2 行

( !) 错误:“ClassB”类 在第 2 行的 C:\xampp\htdocs\Debug\classA.php 中找不到

请问,谁能告诉我在 ClassA 中到达 ClassB 的最佳方式是什么?

index.php

<?php
    require_once("ClassB.php");    
?>

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>Lískovec PHP</title>
 </head>
 <body>
     <form action="classA.php" id="import_form" 
            method="post" enctype="multipart/form-data">        
        <input id="submit" type="submit" 
               name="submit" value="submit" />
     </form>
 </body>
</html>

classB.php

<?php
  class ClassB {
    public $XXX = "1234567890";
  }
?>

classA.php

<?php
  $classB = new ClassB;
  echo $classB->XXX;
?>

【问题讨论】:

  • 您需要将文件classb包含到classa.php文件中
  • 在一个库存储中包含或需要文件不是一个好习惯吗? index.php 还是 bootstrap.php?

标签: php


【解决方案1】:

Php 建议自动加载如下 在文件类名和文件名必须相同... 获取实例对象时,php自动包含

classA.php


spl_autoload_register(function($class)
{

    include "$class.php";

}


$classB = new ClassB;
 echo $classB->XXX;


classB.php


<?php
  class ClassB {
    public $XXX = "1234567890";
  }
?>

【讨论】:

  • 在一个库存储中包含或要求文件不是一个好习惯吗? Index.php 还是 bootstrap.php?是否有必要在每个 php 文件中一遍又一遍地注册它?如果我有几十个这样的依赖项怎么办?
  • 标准 psr-4 自动加载。我基本上可以告诉你,如果你是专业的,你会使用 PSR-4 自动加载...
  • 用 composer 创建 psr-4 自动加载
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-25
  • 2022-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-09
相关资源
最近更新 更多