PHP爆炸字符串,奇怪的结果

PHP爆炸字符串,奇怪的结果,php,arrays,string,split,explode,Php,Arrays,String,Split,Explode,我正在为我的kickstarter项目制作一个小型自动加载器,我有一个问题让我有点困惑 我已经创建了一个loader类,它接受一个必须包含下划线的参数,以知道装入器必须在何处处理该类。 此字符串包含路径信息和类的名称,例如:“path_to_my_class_myclassname” 在loader类中,我用“uz”(下划线)delimeters将这个字符串拆分为一个数组,它总是以某种方式返回一些意外的数组项,例如: 如果字符串是“first”,则数组将如下所示: array (size=1)

我正在为我的kickstarter项目制作一个小型自动加载器,我有一个问题让我有点困惑

我已经创建了一个loader类,它接受一个必须包含下划线的参数,以知道装入器必须在何处处理该类。 此字符串包含路径信息和类的名称,例如:“path_to_my_class_myclassname” 在loader类中,我用“uz”(下划线)delimeters将这个字符串拆分为一个数组,它总是以某种方式返回一些意外的数组项,例如:

如果字符串是
“first”
,则数组将如下所示:

array (size=1)
  0 => string 'first' (length=5)
array (size=1)
  0 => string 'f' (length=1)
array (size=2)
  0 => string 'youtube' (length=7)
  1 => string 'ClassYouTubeAPI' (length=15)
array (size=1)
  0 => string 'y' (length=1)
然后,如果我使用下划线,那么字符串是:
'youtube\u ClassYouTubeAPI'
它看起来像这样:

array (size=1)
  0 => string 'first' (length=5)
array (size=1)
  0 => string 'f' (length=1)
array (size=2)
  0 => string 'youtube' (length=7)
  1 => string 'ClassYouTubeAPI' (length=15)
array (size=1)
  0 => string 'y' (length=1)

您可以看到,在这两个示例中,结果数组都包含输入字符串的第一个字母,但不应该包含

我也尝试了
explode(“”,$inputstring)
preg\u split(“[\u]”,$inputstring)
,但结果是一样的

如果有人能帮我,我将不胜感激。提前谢谢

==更新========

以下是全部代码:

<?php
class Autoloader {
    static public function loader($load_input) {

        $load_data = preg_split('[_]',$load_input,0);
        $classname = $load_input[count($load_input)-1];
        $filename = 'classes/'.implode('/',$load_data).'.php'; 
        var_dump($load_data);

        if (file_exists($filename)) {
            include($filename);
            if (class_exists($classname)) {
                return TRUE;
            }
        }
        return FALSE;
    }
}
spl_autoload_register('Autoloader::loader');
?>

拆分工作正常。问题在于这一行:

$classname = $load_input[count($load_input)-1];
应该是:

$classname = $load_data[count($load_data)-1];
i、 e.您需要使用
$load\u data
而不是
$load\u input


否则,您要求的是来自输入字符串的
[0]
(即“y”)而不是来自您的分解数组的
[0]
,即
youtube

您能给我们完整的php代码吗?您发布的代码。代码中的其他地方一定有问题。请发布完整(er)列表,我们将尝试帮助“结果数组包含输入字符串的第一个字母”,我怀疑您看到的是str[0],而不是arr[0]。。