Pourquoi ne puis-je accéder immédiatement à l'élément de tableau a explosé?

StackOverflow https://stackoverflow.com/questions/2269145

  •  20-09-2019
  •  | 
  •  

Question

Pourquoi ne puis-je accéder immédiatement à des éléments dans le tableau retourné par explode()?

Par exemple, cela ne fonctionne pas:

$username = explode('.',$thread_user)[1]; 
//Parse error: syntax error, unexpected '[

Mais ce code ne:

$username = explode('.',$thread_user); 
$username = $username[1];

Je ne programment généralement pas en PHP, donc c'est assez déroutant pour moi.

Était-ce utile?

La solution

En fait, PHP ne suffit supporte pas cette syntaxe. Dans les langues comme Javascript (par exemple), l'analyseur peut gérer les opérations d'imbrication / enchaînant plus complexes, mais PHP n'est pas une de ces langues.

Autres conseils

La raison pour laquelle il est pas évident de faire ce que vous voulez que explode pourrait revenir false. Vous devriez vérifier la valeur de retour avant l'indexation en elle.

Il est dépendant de la version. PHP 5.4 fait appui pour accéder au tableau retourné.

Source: http://php.net/manual /en/language.types.array.php#example-115

Depuis explode () retourne un tableau, vous pouvez utiliser d'autres fonctions telles que $username = current(explode('.',$thread_user));

Je viens d'utiliser ma propre fonction:

function explodeAndReturnIndex($delimiter, $string, $index){
    $tempArray = explode($delimiter, $string);
    return $tempArray[$index];
}

le code de votre exemple serait alors:

$username = explodeAndReturnIndex('.', $thread_user, 1);

Voici comment le faire descendre à une ligne:

$username = current(array_slice(explode('.',$thread_user), indx,1));

indx est l'index que vous voulez à partir du tableau éclaté. Je suis nouveau à php mais je veux dire tableau éclaté:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top