2010-12-07 5 views
2

Cela va être une question très simple, j'ai le code qui ressemble à ceci:PHP Set variable à Key Array dans une ligne

<?php 
$rawmessage = "This is what I want.--This is all junk."; 

$fmessage = explode("--", $rawmessage); 
//Alt. Universe #1: $fmessage = $fmessage[0]; 

echo $fmessage[0]; //"This is what I want." 
//Alt. Universe #1: echo $fmessage; 
?> 

Maintenant, je sais combien stupide que cela puisse paraître, mais est-il chemin que je peux assigner $ fmessage à [0] dans une ligne? Parce que 1) je ne veux pas écrire $ fmessage [0], il n'a pas besoin d'être un tableau à ce stade, et 2) je veux savoir si c'est faisable parce que ce n'est pas la première fois que je Je voulais définir une seule partie du tableau dans une variable. Exemple de ce que je veux écrire (dans mon pays imaginaire, bien sûr. Cela jette une erreur dans la réalité.)

<?php 
$rawmessage = "This is what I want.--This is all junk."; 

$fmessage = explode("--", $rawmessage)[0]; 
//In my fantasy land, adding the [0] means that the array's key [0] value is set to $fmessage 

echo $fmessage; //"This is what I want." For real. 
?> 
+1

Votre tableau de terres fantastique déréférencement fonctionne en fait avec le dernier code dans le coffre de PHP, alors peut-être cette fonctionnalité apparaîtra dans PHP 5.4. – Matthew

+0

@konorce A propos de temps friggin! – alex

+0

Dites wha? Je devrais être un développeur PHP si je pense à ça! : P – NessDan

Répondre

4
list($fmessage) = explode('--', $rawmessage); 

list() est pas une fonction, mais une construction de langage PHP (ou tout simplement un opérateur qui ressemble à une fonction).

Il décompresse les membres du groupe dans les variables locales ...

$array = array('a', 'b', 'c'); 

list($a, $b, $c) = $array; 

var_dump($a, $b, $c); 

Sorties ...

string(1) "a" 
string(1) "b" 
string(1) "c" 
+1

Vous êtes trop sacrément rapide! ;-) +1 –

+0

C'était incroyablement rapide O_O. Juste si je suis clair cependant, devrais-je attendre une visite des développeurs PHP et recevoir une tape sur le poignet pour une mauvaise pratique ou est-ce A-OH-KAY? – NessDan

+0

@NessDan C'est bien, tant que vous n'en abusez pas. Fondamentalement, il s'agit d'une version terser de votre code posté, avec le même résultat à la fin, donc c'est OK. – alex

Questions connexes