2012-11-02 4 views
-4

Possible en double:
Annoying PHP error: “Strict Standards: Only variables should be passed by reference in”PHP normes strictes en ligne avec la variable

Je cette ligne de code,

$extension=end(explode(".", $srcName)); 

quand je amusant ma fonction je reçois

PHP normes strictes: Seules les variables doivent être transmises par référence dans

Je ne sais pas comment résoudre ce

+1

connexes: [Parenthèses modifier la sémantique du résultat de l'appel de fonction] (http://stackoverflow.com/q/6726589/367456) – hakre

Répondre

4

La fonction end() nécessite une variable est passée par référence et en passant le Retour- La valeur d'une fonction ne l'atteint pas. Vous aurez besoin d'utiliser deux lignes pour y parvenir:

$exploded = explode(".", $srcName); 
$extension = end($exploded); 

Si vous êtes tout simplement essayer d'obtenir une extension de fichier, vous pouvez également utiliser substr() et strrpos() de le faire en une ligne:

$extension = substr($srcName, strrpos($srcName, '.')); 

Ou, si vous connaissez le nombre de . « s qui apparaissent dans la chaîne, que c'est seulement 1, vous pouvez utiliser list() (mais cela ne fonctionnera pas s'il y a un nombre dynamique de . » s:

+2

* Pssst: * S'il est sur le fichier d'extension, mieux relier une question qui est spécifiquement à ce sujet . Comme: [Comment extraire une extension de fichier en PHP?] (Http://stackoverflow.com/q/173868/367456) – hakre

+0

billiant solution simple, est logique et m'a vraiment aidé là-bas, grâce nefurniturey –

Questions connexes