PHP非法字符串偏移警告

时间:2016-02-10 17:31:48

标签: php

免责声明:我不是PHP程序员。我根本不认为自己是程序员。我很幸运地继承了一些无法运作的代码。

所以我有这个代码。我相信它是为PHP4编写的,但我们正在使用PHP5。

// Retrieve project list
$project = new CProject();
$proj = $project->getAllowedRecords( $AppUI->user_id, 'project_id, project_name');
foreach ( $proj as $k => $p ) {
    $project_select_list[$k] = $p['project_name'];
}

这应该根据用户的角色填充选择列表,但它不起作用。我得到"非法字符串偏移"在foreach循环内线上的警告。我想了解它正在尝试做什么,但我还没有足够的PHP来修复它。我在$ proj上做了一个vardump,它返回了这个。

array(5) { 
  [1]=> string(4) "Roof" 
  [2]=> string(4) "Wall" 
  [3]=> string(4) "Yard" 
  [4]=> string(7) "Kitchen" 
  [5]=> string(8) "Bathroom" 
} 

任何人都有任何关于如何解决它的提示?感谢。

1 个答案:

答案 0 :(得分:4)

这似乎是由此产生的:

 $p['project_name'];

如果$p变量是一个字符串(如var_dump()所述),那么您就无法访问阵列。最可能的解决方案是:

foreach ( $proj as $k => $p ) {
    $project_select_list[$k] = $p;
}