为什么存在非法的字符串偏移量以及如何解决?

时间:2019-05-16 13:20:15

标签: php

我在此行的功能有误:

$FILE_LIST[$key]['name'] = str_replace('.' . $ext, '', $result);

Warning: Illegal string offset 'name'

我尝试了不同的方法,但是找不到解决方案。 我看起来像Warning: Illegal string offset 'name'的其他帖子 但这并不能解决问题(或者我发疯了)。

功能

public function getFiles($source_folder, $filename, $ext = 'php') {
  if(is_dir( $source_folder)) {
    $FILES = glob($source_folder . $filename . '.' . $ext);
    $FILE_LIST[] = '';

    if (is_array($FILES)) {
      foreach($FILES as $key => $file) {
        $result = str_replace($source_folder, '', $file);
        $name = str_replace('.' . $ext, '', $result);

        if (!empty($name)) {
          $FILE_LIST[$key]['name'] = $name;
        }
      }
    }

    if (is_array($FILE_LIST)) {
      return $FILE_LIST;
    }
  }
}

1 个答案:

答案 0 :(得分:0)

更改此:

if (!empty($name)) {
  $FILE_LIST[$key]['name'] = $name;
}

对此:

if (!empty($name)) {
   $FILE_LIST[$key] = Array();
   $FILE_LIST[$key]['name'] = $name;
}