如何修复PHP中的警告非法字符串偏移量

时间:2014-03-09 06:40:50

标签: php arrays wordpress casting offset

我有一大堆PHP代码,它给了我错误:

  

警告:非法字符串偏移'iso_format_recent_works'    C:\ xampp \ htdocs \ Manta \ wp-content \ themes \ manta \ functions.php on    1328

这是与警告有关的代码:

if(1 == $manta_option['iso_format_recent_works']){
    $theme_img = 'recent_works_thumbnail';
} else {
    $theme_img = 'recent_works_iso_thumbnail';
}

当我做一个var_dump($manta_option);时,我会收到以下结果:

  

[ “iso_format_recent_works”] => string(1)“1”

我尝试将$manta_option['iso_format_recent_works']投射到int,但仍然遇到同样的问题。

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:28)

魔术词是: isset

验证条目:

if(isset($manta_option['iso_format_recent_works']) && $manta_option['iso_format_recent_works'] == 1){
    $theme_img = 'recent_works_thumbnail';
} else {
    $theme_img = 'recent_works_iso_thumbnail';
}

答案 1 :(得分:3)

1

 if(1 == @$manta_option['iso_format_recent_works']){
      $theme_img = 'recent_works_thumbnail';
 } else {
      $theme_img = 'recent_works_iso_thumbnail';
 }

2

if(isset($manta_option['iso_format_recent_works']) && 1 == $manta_option['iso_format_recent_works']){
    $theme_img = 'recent_works_thumbnail';
} else {
    $theme_img = 'recent_works_iso_thumbnail';
}

3

if (!empty($manta_option['iso_format_recent_works']) && $manta_option['iso_format_recent_works'] == 1){
}
else{
}

答案 2 :(得分:2)

请检查您的密钥是否存在于数组中,而不是简单地尝试访问它。

替换:

$myVar = $someArray['someKey']

有类似的东西:

if (isset($someArray['someKey'])) {
    $myVar = $someArray['someKey']
}

或类似的东西:

if(is_array($someArray['someKey'])) {
    $theme_img = 'recent_works_iso_thumbnail';
}else {
    $theme_img = 'recent_works_iso_thumbnail';
}