2013-06-29 59 views
-2

为什么我会收到这些错误?为什么我会收到“非法字符串偏移”错误?

警告:非法串成 'en' 偏移C:\ XAMPP \ htdocs中\包括在线路\ stream.class.php 48

警告:非法字符串 'EN' 在C的失调:\ XAMPP \ htdocs \ includes \ stream.class.php on line 60

这是我的代码。

$s['target_data']['title'] = $s['target_data']['title']['en']; 
$s['target_data']['description'] = $s['target_data']['description']['en']; 

回答

3

问题是,$s['target_data']['title']是一个字符串,而不是你所期待的数组。

PHP允许您使用数组类型语法索引到一个字符串($string[0]返回$string第一个字符,例如),但只有数字指标就像[0] - 你不能用string指标像["en"],这错误是在抱怨什么。

您显示的代码似乎试图将一个变量从一个数组转换为一个字符串并将其存储回相同的变量。你可能会运行它两次 - 然后第二次得到错误,因为它不再是一个数组?

+0

为什么downvote?这个答案有什么问题吗? – jcsanyi

-1
(array) $s['target_data']['title'] = (array) $s['target_data']['title']['en']; 


    (array) $s['target_data']['description'] = (array)$s['target_data']['description']['en']; 

如果你的$ S [ 'target_data'] [ '说明']和$ S [ 'target_data'] [ '标题']不是数组,你可以将它转换为(阵列)

+0

这可能会修复错误,但它总是返回null(并可能会为未定义的数组索引生成警告) - 在实际查找“en”元素时不是很有用。 – jcsanyi

+0

你是对的,通知将被显示。如果[en]索引为空,则结果始终为空。然后必须在[en]索引上工作 –

相关问题