web-dev-qa-db-fra.com

Comment corriger le décalage de chaîne d'avertissement illégal dans PHP

J'ai ce morceau de PHP qui me donne l'erreur:

Avertissement: Décalage de chaîne illégal 'iso_format_recent_works' dans C:\xampp\htdocs\Manta\wp-content\themes\manta\functions.php en ligne 1328

Il s'agit du code auquel l'avertissement se rapporte:

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

Lorsque je fais une var_dump($manta_option); je reçois le résultat suivant:

["iso_format_recent_works"] => chaîne (1) "1"

J'ai essayé de caster $manta_option['iso_format_recent_works'] Sur un int mais j'obtiens toujours le même problème.

Toute aide serait grandement appréciée!

7
Jason

Magic Word est: isset

Validez l'entrée:

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';
}
28
Adrian Preuss

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{
}
3
zion ben yacov

Veuillez vérifier que votre clé existe dans le tableau ou non, au lieu d'essayer simplement d'y accéder.

Remplacer:

$myVar = $someArray['someKey']

Avec quelque chose comme:

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

ou quelque chose comme:

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