PHPで「=>」とはどういう意味ですか?


98

何をしない=>事業者は、次のコードに意味ですか?

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

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

ただし、割り当てられていないため、目的は不明です。私はコードを

  1. ユーザーのリストを整数で処理する
  2. 各ユーザーの値がパスワード以上になるように

上記は私には意味がありません。


回答を更新しましたが、 'array'キーワードを忘れました。
タイラーカーター、


@Masiの間違い。ごめんなさい。
kapa

=>は配列に値を割り当て、キーをインデックスとして使用します。したがって、あなたの場合、$ user_listを呼び出す配列は、インデックスキーとして$ userを使用します。foreachループはループし、その配列内のすべての要素に値$ passを割り当てます。
ジュリアン

回答:


125

=>連想配列の区切り文字です。その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

22

これは、キーを$ userに割り当て、変数を$ passに割り当てることを意味します

配列を割り当てるときは、次のようにします

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

これは、foreachステートメントで配列を処理するために同じシンボルを使用します。「=>」はキーと値をリンクします。

PHPマニュアルによると、「=>」はキーと値のペアを作成しました。

また、Equal or Greater thanは、反対の方法である「> =」です。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"
}

1
エラーメッセージが表示されるので、最後の例に問題がありますParse error: syntax error, unexpected T_DOUBLE_ARROW in /var/www/cha.php on line 2
レオ・レオポルド・ヘルツ준 영

配列キーワードを追加するのを忘れました。試してみる
タイラーカーター、

12

「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で開始している場合、あなたは間違いなくいくつかの時間を過ごす必要があります(時間の多分カップル、多分半日あるいは一日を)マニュアルの一部を通過:-)
それはdたくさん助けて!


6

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

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

配列の各キーと値のペアで何かを実行したい場合は、foreach制御構造を使用できます。

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

$ array変数は、使用する配列です。$ key変数と$ value変数には、foreachループの反復ごとにキーと値のペアが含まれます。この例では、最初に「黄」と3が含まれ、次に「緑」と4が含まれます。

キーを気にしない場合は、別の表記法を使用できます。

foreach ($array as $value)

「foreach」は本当にオペレーターですか?ソースはありますか?
Peter Mortensen

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

4

PHPの配列は、デフォルトでは連想配列(別名、辞書またはハッシュ)です。キーを明示的に値に割り当てない場合、インタプリタは自動的にそれを行います。そのため、ここで取得した式はを反復処理し$user_list、キーをとして使用し$user、値$passをの本体のローカル変数として使用できるようにしますforeach


3

$user_list ループしたときに名前と値に分割できるデータの配列です。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.