__autoload 中是不是一定需要 require_once?

看到 __autoload 连官方手册都是 require_once,但是自己测试的时候,如果文件已经加载过了,是不会再执行加载的:

【index.php】

<?php
function __autoload($className)
{
    echo 'autoload';
    require($className.'.php');
}

$obj = new sample();
$obj = new sample();
$obj = new sample();
$obj = new sample();
$obj = new sample();

【sample.php】

<?php
class sample{}

index.php 和 sample.php 同目录,事实上最后只输出了一次 'autoload' 字符串。

那这么说来,是不是用 require 就可以了,何必用 once 造成不必要的性能浪费呢?

阅读 2.9k
1 个回答
新手上路,请多包涵

首先 User Contributed Notes 并不是官方手册,是用户贡献建议。PHP手册官方没给出实际例子,而且下面有其他用户建议使用require include而不是require_once和include_once

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题