可能重复:
$k=>foreach中的v($ex为$k=>$v(的平均值?
我正在努力理解这意味着什么:
foreach($this->domains as $domain=>$users) {
// some code...
}
我知道$this->domains
是foreach
将对其进行索引的数组。但是as $domain=>$users
是什么意思?我只见过在数组中使用=>
运算符来设置(键、值(对。该类有一个名为$domain
的成员,但我认为它将作为$this->domain
访问。
=>
运算符指定一个关联。因此,假设$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
可能是一个用户数组(;
这样想:
foreach($this->domains as $key=>$value) {
它将遍历$this->domains
作为键/值对返回的关联数组中的每个元素。键将在$domain
中,值在$users
中。
为了帮助您理解,您可以将这行代码放在foreach
循环中:
echo $domain, " => ", $users;
读取每个
foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement
第一种形式在array_expression给定的数组上循环。在每个循环中,当前元素的值被分配给$value内部数组指针提前了一个(因此在下一个循环中,您将正在查看下一个元素(。
第二个表单执行相同的操作,只是当前元素的key将在每个循环中分配给变量$key。
$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->域访问。
你是对的,这里只有$domain
是局部变量。您需要$this->domain
来获取成员变量。