What does "=>" mean in PHP?

What does the => operator mean in the following code?

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

The code is a comment at PHP.net. The user does not specify the value of $user_list , $user or $pass. I normally see that => means equal or greater than.

However, I am not sure about its purpose here because it is not assigned. I read the code as

  • process a list of users in integers
  • such that the value of each user is equal or greater than password
  • The above does not make sense to me.


    => is the separator for associative arrays. In the context of that foreach loop, it assigns the key of the array to $user and the value to $pass .

    Example:

    $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"
    

    Note that this can be used for numerically indexed arrays too.

    Example:

    $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
    

    It means assign the key to $user and the variable to $pass

    When you assign an array, you do it like this

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

    It uses the same symbol for processing arrays in foreach statements. The '=>' links the key and the value.

    According to the PHP Manual, the '=>' created key/value pairs.

    Also, Equal or Greater than is the opposite way: '>='. In PHP the greater or less than sign always goes first: '>=', '<='.

    And just as a side note, excluding the second value does not work like you think it would. Instead of only giving you the key, It actually only gives you a value:

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

    Code like "a => b" means, for an associative array (some languages, like Perl, if I remember correctly, call those "hash"), that 'a' is a key, and 'b' a value.

    You might want to take a look at the documentations of, at least:

  • foreach
  • arrays
  • Here, you are having an array, called $user_list , and you will iterate over it, getting, for each line, the key of the line in $user , and the corresponding value in $pass .

    For instance, this code:

    $user_list = array(
        'user1' => 'password1',
        'user2' => 'password2',
    );
    
    foreach ($user_list as $user => $pass)
    {
        var_dump("user = $user and password = $pass");
    }
    

    Will get you this output:

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

    (I'm using var_dump to generate a nice output, that facilitates debuging; to get a normal output, you'd use echo )


    "Equal or greater" is the other way arround: "greater or equals", which is written, in PHP, like this; ">="
    The Same thing for most languages derived from C: C++, JAVA, PHP, ...


    As a piece of advice: If you are just starting with PHP, you should definitely spend some time (maybe a couple of hours, maybe even half a day or even a whole day) going through some parts of the manual :-)
    It'd help you much!

    链接地址: http://www.djcxy.com/p/1768.html

    上一篇: 在PHP中使用=>

    下一篇: “=>”在PHP中意味着什么?