【问题标题】:What does "=>" mean in PHP?PHP中的“=>”是什么意思?
【发布时间】:2010-11-17 12:41:25
【问题描述】:

以下代码中=> 运算符是什么意思?

foreach ($user_list as $user => $pass)

代码是 PHP.net 上的评论。 用户未指定$user_list$user$pass 的值。 我通常看到=> 表示等于或大于。

但是,我不确定它在这里的用途,因为它没有被分配。 我将代码阅读为

  1. 以整数形式处理用户列表
  2. 使得每个用户的值等于或大于密码

以上对我来说没有意义。

【问题讨论】:

  • 我更新了答案,忘记了“数组”关键字。
  • @Masi 错误在我这边。对不起。
  • 我会说 => 为数组分配一个值并使用一个键作为索引。因此,在您的情况下,您调用 $user_list 的数组使用 $user 作为索引键。 foreach 循环循环并为该数组中的每个元素分配值 $pass。

标签: php


【解决方案1】:

PHP 中的数组是键到值的映射:

$array = array();
$array["yellow"] = 3;
$array["green"] = 4;

如果你想对数组中的每个键值对做一些事情,你可以使用foreach控制结构:

foreach ($array as $key => $value)

$array 变量是您将使用的数组。 $key 和 $value 变量将在 foreach 循环的每次迭代中包含一个键值对。在本例中,它们将首先包含“yellow”和 3,然后是“green”和 4。

如果你不关心键,你可以使用另一种表示法:

foreach ($array as $value)

【讨论】:

【解决方案2】:

像“a => b”这样的代码意味着,对于关联数组(某些语言,如Perl,如果我没记错的话,称之为“散列”),'a' 是一个键,'b' 一个值。

您可能希望至少查看以下文档:

在这里,您有一个名为$user_list 的数组,您将对其进行迭代,为每一行获取$user 中行的键,以及$pass 中的相应值。

例如,这段代码:

$user_list = array(
    'user1' => 'password1',
    'user2' => 'password2',
);

foreach ($user_list as $user => $pass)
{
    var_dump("user = $user and password = $pass");
}

将为您提供以下输出:

string 'user = user1 and password = password1' (length=37)
string 'user = user2 and password = password2' (length=37)

(我使用var_dump 生成一个很好的输出,便于调试;要获得正常输出,您可以使用echo


“等于或大于”是另一种方式:“大于或等于”,用PHP编写,如下所示; ">="
大多数从 C 派生的语言也是如此:C++、JAVA、PHP...


作为一条建议:如果您刚开始使用 PHP,您绝对应该花一些时间(可能是几个小时,甚至可能是半天甚至一整天)手册:-)
对你有很大帮助!

【讨论】:

    【解决方案3】:

    => 是关联数组的分隔符。在该 foreach 循环的上下文中,它将数组的键分配给$user,将值分配给$pass

    例子:

    $user_list = array(
        'dave' => 'apassword',
        'steve' => 'secr3t'
    );
    
    foreach ($user_list as $user => $pass) {
        echo "{$user}'s pass is: {$pass}\n";
    }
    // Prints: 
    // "dave's pass is: apassword"
    // "steve's pass is: secr3t"
    

    请注意,这也可以用于数字索引数组。

    例子:

    $foo = array('car', 'truck', 'van', 'bike', 'rickshaw');
    foreach ($foo as $i => $type) {
        echo "{$i}: {$type}\n";
    }
    // prints:
    // 0: car
    // 1: truck
    // 2: van
    // 3: bike
    // 4: rickshaw
    

    【讨论】:

      【解决方案4】:

      $user_list 是一个数据数组,在循环时可以拆分为它的名称和值。

      在这种情况下,它的名称是$user,它的值是$pass

      【讨论】:

        【解决方案5】:

        这意味着将密钥分配给$user,将变量分配给$pass

        当你分配一个数组时,你会这样做

        $array = array("key" => "value");
        

        它使用相同的符号来处理 foreach 语句中的数组。 '=>' 链接键和值。

        根据PHP Manual,“=>”创建了键/值对。

        另外,等于或大于是相反的方式:'>='。在 PHP 中,大于或小于号总是在前:'>='、'

        顺便说一句,排除第二个值不会像您想象的那样起作用。而不是只给你密钥,它实际上只给你一个值:

        $array = array("test" => "foo");
        
        foreach($array as $key => $value)
        {
            echo $key . " : " . $value; // Echoes "test : foo"
        }
        
        foreach($array as $value)
        {
            echo $value; // Echoes "foo"
        }
        

        【讨论】:

        • 你的最后一个例子有问题,因为我收到了错误消息Parse error: syntax error, unexpected T_DOUBLE_ARROW in /var/www/cha.php on line 2
        • 糟糕忘了添加数组关键字。试试看
        【解决方案6】:

        默认情况下,PHP 中的数组是关联数组(也称为字典或哈希)。如果你没有明确地为一个值分配一个键,解释器会默默地为你做这件事。因此,您在那里得到的表达式会遍历 $user_list,从而使键可用作 $user,而值可用作 $pass,作为 foreach 正文中的局部变量。

        【讨论】:

          猜你喜欢
          • 2011-01-24
          • 2011-01-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-13
          • 1970-01-01
          • 2011-08-12
          • 2017-06-11
          相关资源
          最近更新 更多