2017-08-04 3 views
2

http://php.net/manual/en/control-structures.foreach.phpQue signifie "array_expression" en php?

Essayer de mieux comprendre la boucle foreach. Dans la documentation ci-dessus, il est écrit "La première forme boucle sur le tableau donné par array_expression".

Qu'est-ce que dans le monde est une array_expression?

+0

'array_expression' est le nom _possible de Variable_ ('foreach (array_expression as $ value)') et il peut aussi s'agir d'un tableau réel –

+0

Une 'array_expression' est simplement un tableau PHP ou un objet – Matthew

Répondre

2

Un expression_tableau est une expression qui se traduit par un tableau. Donc, ce sont des expressions qui ne sont pas eux-mêmes des tableaux, mais se traduisent par un tableau lors de l'évaluation:

foreach(range(1, 5) as $val){} 

Ou:

foreach($array = range(1, 5) as $val){} 

Ou:

class Test { 
    public static function do_it() { 
     return range(1, 5); 
    } 
} 

foreach(Test::do_it() as $val){} 
1

Du descriptionpage de php manual

Les expressions sont les plus importants blocs de construction de PHP. En PHP, presque tout ce que vous écrivez est une expression. La manière la plus simple mais la plus précise de définir une expression est "tout ce qui a une valeur".

Donc, cela signifie array_expression est juste un stupide faux texte pour vous faire savoir que le foreach prend la fonction de tableau.

Dans ce cas,

$arr = array(1, 2, 3); 

foreach ($arr as $value) { 
    var_dump($value); 
} 

CREERAIENT:

int(1) int(2) int(3) 
+0

Je montrerais aussi un exemple avec 'foreach (array (1,2,3) as & $ value) {' (ou style similaire) pour montrer les différences pour utiliser un tableau dans la boucle –

+0

Mais comment un tableau peut-il être une expression? –

+0

Je me suis battu sur la même chose quand j'ai commencé à apprendre le PHP. Voici une page entièrement consacrée à ce qu'une expression signifie [Les expressions sont le bloc de construction le plus important ....] (http://php.net/manual/fr/language.expressions.php) – samayo