PHP等于foreach循环中的箭头运算符

时间:2011-10-11 20:21:15

标签: php arrays foreach

  

可能重复:
  What does $k => $v in foreach($ex as $k=>$v) mean?

我想了解这意味着什么:

foreach($this->domains as $domain=>$users) {  

// some code...

}

我理解$this->domainsforeach将索引的数组。但as $domain=>$users是什么意思?我只看到数组中使用的=>运算符来设置(键,值)对。该类有一个名为$domain的成员,但我认为它将作为$this->domain访问。

4 个答案:

答案 0 :(得分:4)

=>运算符指定关联。因此,假设$this->domains是一个数组,$domain将成为关键,而$users将是该值。

<?php
$domains['example.com'] = 'user1';
$domains['fred.com'] = 'user2';

foreach ($domains as $domain => $user) {
    echo '$domain, $user\n';
}

输出:

example.com, user1
fred.com, user2

(在您的示例中,$users可能是一组用户);

答案 1 :(得分:3)

这样想:

foreach($this->domains as $key=>$value) {

它将逐步通过$this->domains返回的关联数组中的每个元素作为键/值对。 位于$domain$users位于

为了帮助您理解,您可以将此行放在foreach循环中:

echo $domain, " => ", $users;

答案 2 :(得分:1)

阅读foreach

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement
  

第一个表单循环遍历array_expression给出的数组。在每一个上   循环,当前元素的值被赋值为$ value和   内部数组指针被提前一个(所以在下一个循环中,你会   看下一个元素。)

     

除了当前元素之外,第二种形式做同样的事情   key将被分配给每个循环上的变量$ key。

答案 3 :(得分:0)

$domain这是一个局部变量,它包含数组中当前项的键。那就是你的数组是:

$ages = array("dad" => 31, "mom" => 35, "son" => 2);

然后

foreach($ages as $name=>$age) 
{  
   // prints dad is 32 years old, mom is 35 years old, etc
   echo "$name is $age years old"

}

在循环体中,引用$name将引用当前键,即“爸爸”,“妈妈”或“儿子”。而$age会将我们上面存储的年龄称为当前密钥。

  

假设将以$ this-&gt; domain。

的形式访问

你说得对,只有$domain是这里的局部变量。您需要$this->domain来获取成员变量。