2009-08-06 1 views
83

=>演算子は次のコードで何を意味しますか?PHPでは "=>"の意味は何ですか?

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

コードはPHP.netのコメントです。 ユーザーは$user_list,$userまたは$ passの値を指定しません。 私は通常、=>はそれ以上であることを意味しています。

ただし、割り当てられていないため、ここでその目的についてはわかりません。 私は

  1. プロセスとして、整数、各ユーザの値が

パスワードと同等以上であることなど

  • でのユーザーのリストを、コードを読んで上記の私には意味がありません。

  • +0

    私は私を更新:この例では、彼らが最初にあなたが鍵を気にしない場合は、代替表記を使用することができ、「黄」が含まれており、3、その後、「緑」と4

    ます答え、 'array'キーワードを忘れました。 –

    +0

    関連:http://stackoverflow.com/questions/4758791/what-does-k-v-in-foreachex-as-k-v-mean –

    +0

    @Masi Mistake on my side。ごめんなさい。 – kapa

    答えて

    105

    =>は、連想配列のためのセパレータです:代わりにのみ、あなたの鍵を与える、それは実際にはあなたの価値を提供します。 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 
    
    20

    それは渡す$ユーザーへの鍵と$に変数を割り当てること

    あなたは、配列を割り当てるとき、あなたはそれがforeachの中に処理アレイの同じシンボルを使用しています。この

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

    のようにそれを行いますステートメント。 '=>'はキーと値をリンクします。

    PHP Manualによれば、 '=>'は作成されたキーと値のペアです。

    また、「> =」の逆の場合と同じかそれ以上です。 PHPでは、より大きいまたはより小さい記号が常に先頭になります: '> ='、 '< ='。

    ちょうど副次的なものとして、第2の値を除外することは、あなたが思うように機能しません。

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

    あなたの最後の例は、 'Parse error:構文エラー、予期しないT_DOUBLE_ARROW in /var/www/cha.php in 2行目 'というエラーメッセージが表示されるので、何か問題があります。 –

    +0

    Ooops Arrayキーワードを追加するのを忘れました。それを試してください –

    3

    $user_listはそれの名前と値に分割することができるを通してループデータの配列です。

    この場合、名前は$userであり、値は$passです。

    4

    PHPの配列は、デフォルトで連想配列(辞書やハッシュとしても知られています)です。キーに値を明示的に割り当てないと、通訳者はそれを暗黙のうちに行います。したがって、そこにある式は$user_listで繰り返され、キーは$user$passとして利用可能な値はforeachの本文にローカル変数として使用できます。 "A => B" '' キーであることを連想配列(私が正しく覚えていれば、いくつかの言語は、Perlのように、これらの "ハッシュ" と呼ぶ)、手段、および「Bなどの

    11

    コード' 価値。

    あなたは少なくとも、のドキュメンテーションを見てみたいことがあります。ここでは

    、あなたは$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を使用します)


    「等しいかより大きい」は、もう1つの方法であり、これはPHPで書かれた「より大きいか等しい」です。 C由来ほとんどの言語のための「> =」
    同じこと:C++、JAVA、PHP、...アドバイスの一部として


    :あなただけのPHPで開始する場合、あなたは間違いなくいくつかを費やす必要があります時間(多分数時間、多分半日または一日でさえ)マニュアルのいくつかの部分を通って:-)
    それはあなたを助けるでしょう!

    6

    PHPの配列は、キーと値のマップです:

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

    あなたは、アレイ内の各キーと値のペアで何かをしたい場合は、あなたがforeach制御構造を使用することができます。

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

    $ array変数は、使用する配列です。 $ key変数と$ value変数には、foreachループの各繰り返しでキーと値のペアが含まれます。

    foreach ($array as $value) 
    
    +0

    "foreach"は本当に演算子ですか?源泉はありますか? –

    +0

    技術的に言えば、それは制御構造です:http://php.net/manual/en/control-structures.foreach.php 私はそれに応じて答えを更新しました。 – Scharrels

    関連する問題