我想了解这意味着什么:
foreach($this->domains as $domain=>$users) {
// some code...
}
我理解$this->domains
是foreach
将索引的数组。但as $domain=>$users
是什么意思?我只看到数组中使用的=>
运算符来设置(键,值)对。该类有一个名为$domain
的成员,但我认为它将作为$this->domain
访问。
答案 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
来获取成员变量。