Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:u自动加载函数不';我从没打过电话_Php_Xampp_Autoload - Fatal编程技术网

PHP:u自动加载函数不';我从没打过电话

PHP:u自动加载函数不';我从没打过电话,php,xampp,autoload,Php,Xampp,Autoload,所以,我有xampp。我在ZendServer上测试了这段代码,结果相同 <?php error_reporting(E_ALL); define ("ABS_PATH", 'C:\xampp\htdocs\oopHotLine\\'); function __autoload($class_name) { echo 'gg'; require_once (ABS_PATH.'classes\\'.$class_name.'.php'); } $process=new

所以,我有xampp。我在ZendServer上测试了这段代码,结果相同

<?php
error_reporting(E_ALL);

define ("ABS_PATH", 'C:\xampp\htdocs\oopHotLine\\');

function __autoload($class_name) {
    echo 'gg';
    require_once (ABS_PATH.'classes\\'.$class_name.'.php');
}

$process=new Main('1');
?>
因此,它不显示“gg”输出。如果我手动执行自动加载('Main');-好的。本手册要求一次或包含一次。windows文件夹中的所有权限都设置为完全访问权限。Php版本-Php版本=>5.3.8

请提供帮助。

有关此主题的注释,可能与以下内容相关:

根据记录的第一条消息判断,这可能是答案:

如果在CLI交互模式下使用PHP,则自动加载不可用

……而且:

spl_autoload_register()为自动加载类提供了更灵活的选择。因此,不鼓励使用_autoload(),将来可能会被弃用或删除

除此之外,以下是我如何编写您的自动加载函数:

function __autoload($class_name) {
  if (file_exists(ABS_PATH."classes/$class_name.php")) { // At least check the file exists before you require it!
    // Forward slashes work on Windows too (in PHP at least)... and they make it more portable
    require_once (ABS_PATH."classes/$class_name.php");
  }
}
正如达维兰多姆所指出的:

Autoloading is not available if using PHP in CLI interactive mode.
因此,不要使用
php.exe-a index.php
,而是将
-a
切掉,尝试使用
php.exe index.php
运行脚本。

如果您的代码有一个现有的自动加载函数,则此函数 必须在自动加载堆栈上显式注册。这是因为 spl_autoload_register()将有效地替换 通过spl_autoload()或 spl_自动加载_调用()


您确定调用了该文件吗?当您使用spl\u autoload\u寄存器加载如下自定义函数时,它是否工作?是的,我非常确定,而且,即使不工作,在出现错误之前,它是否应该首先显示“gg”?使用spl\u autoload\u寄存器的自定义加载程序具有相同的输出
给出相同的输出,很抱歉设置格式。@NiPh我真的认为这与
有关,如果在CLI交互模式下使用PHP,自动加载将不可用。
…感谢您的帮助和有关未来自动加载弃用的信息。
Autoloading is not available if using PHP in CLI interactive mode.