require_once returns true 而不是预期的对象
require_once returns true instead of expected object
两个 vendor/autoload.php
文件基本相同:
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit1e055ec2de42b90d5e1653b608643281::getLoader();
在两个文件中:
$composer_object = ComposerAutoloaderInit1e055ec2de42b90d5e1653b608643281::getLoader();
var_dump($composer_object);
> object(Composer\Autoload\ClassLoader
这让我深入研究了 Composer 的自动加载文件(很有见地),但我仍然感到困惑:
$var = require_once '/srv/path_to_main/vendor/autoload.php';
var_dump($var);
> boolean true
$var = require_once '/srv/path_to_subdir/vendor/autoload.php';
var_dump($var);
> object(Composer\Autoload\ClassLoader
为什么需要第一个文件 return boolean true
,而不是 object(Composer\Autoload\ClassLoader
?
更新
我创建了 vendor/autoload.php
、vendor/aught.php
的副本,当我需要那个副本时,它 return 就是对象。
require_once
returns true
而不是 return 值(如果文件已包含或需要)。
如果您需要两次,您会发现子目录也得到 true
:
require_once '/srv/path_to_subdir/vendor/autoload.php';
$var = require_once '/srv/path_to_subdir/vendor/autoload.php';
var_dump( $var )
两个 vendor/autoload.php
文件基本相同:
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit1e055ec2de42b90d5e1653b608643281::getLoader();
在两个文件中:
$composer_object = ComposerAutoloaderInit1e055ec2de42b90d5e1653b608643281::getLoader();
var_dump($composer_object);
> object(Composer\Autoload\ClassLoader
这让我深入研究了 Composer 的自动加载文件(很有见地),但我仍然感到困惑:
$var = require_once '/srv/path_to_main/vendor/autoload.php';
var_dump($var);
> boolean true
$var = require_once '/srv/path_to_subdir/vendor/autoload.php';
var_dump($var);
> object(Composer\Autoload\ClassLoader
为什么需要第一个文件 return boolean true
,而不是 object(Composer\Autoload\ClassLoader
?
更新
我创建了 vendor/autoload.php
、vendor/aught.php
的副本,当我需要那个副本时,它 return 就是对象。
require_once
returns true
而不是 return 值(如果文件已包含或需要)。
如果您需要两次,您会发现子目录也得到 true
:
require_once '/srv/path_to_subdir/vendor/autoload.php';
$var = require_once '/srv/path_to_subdir/vendor/autoload.php';
var_dump( $var )