所以这是我的代码:
<?php
function __autoload($className) {
$paths = explode(PATH_SEPARATOR, get_include_path());
$file = $className . '.php';
foreach ($paths as $path) {
$combined = $path . DIRECTORY_SEPARATOR . $file;
if (file_exists($combined)) {
echo $combined;
include($combined);
return;
}
}
}
$string = 'Koray';
$string = Framework\StringMethods::_normalize($string);
echo $string;
?>
上述文件称为 index.php。在 Framework 目录下的文件夹中有一个名为 StringMethods.php 的文件。
所以我的问题在这里 audoloader autoloads: .\Framework\StringMethods.php 因为我打电话:
$string = 框架\字符串方法。
所以 $file 变量实际上是= FrameWork\StringMethods。而我所做的是在末尾添加 .php 和开头的 .\ 。
但是 Framework\StringMethods 在 Linus 系统中会如何表现呢?目录分隔符不是Linux中的“/”吗?
所以它会尝试包括:./Framework\StringMethods.php
如果正确,如何更好地编码?