PHP에서 "=>"는 무엇을 의미합니까?


98

=>다음 코드에서 연산자는 무엇을 의미합니까?

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

코드는 PHP.net의 주석입니다. 사용자가 $user_list, $user또는 의 값을 지정하지 않았습니다 $pass. 나는 일반적으로 =>같거나 더 크다는 것을 의미합니다.

그러나 나는 그것이 할당되지 않았기 때문에 여기에서 그 목적에 대해 확신하지 못합니다. 나는 코드를 다음과 같이 읽었다.

  1. 사용자 목록을 정수로 처리
  2. 각 사용자의 값이 암호보다 크거나 같도록

위의 내용은 이해가되지 않습니다.


내 대답을 업데이트하고 '배열'키워드를 잊어 버렸습니다.
Tyler Carter


@Masi 실수가 내 편입니다. 죄송합니다.
kapa

=>는 배열에 값을 할당하고 키를 인덱스로 사용합니다. 따라서 귀하의 경우 $ user_list라고 부르는 배열은 $ user를 인덱스 키로 사용합니다. foreach 루프는 해당 배열의 모든 요소에 $ pass 값을 반복하고 할당합니다.
Julian

답변:


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 매뉴얼 에 따르면 '=>'는 키 / 값 쌍을 생성했습니다.

또한 같거나 큼은 '> ='와 반대입니다. PHP에서는보다 크거나 작은 기호가 항상 먼저 표시됩니다 : '> =', '<='.

그리고 부수적으로 두 번째 값을 제외하면 생각대로 작동하지 않습니다. 키만 제공하는 대신 실제로 값만 제공합니다.

$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있습니다.
Léo Léopold Hertz 준영 2009-08-06

죄송합니다 배열 키워드를 추가하는 것을 잊었습니다. 시도해보세요
Tyler Carter

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)


"Equal or greater"는 다른 방법입니다. "greater or equals"는 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루프의 모든 반복에서 키-값 쌍을 포함합니다 . 이 예에서는 먼저 "yellow"와 3, "green"및 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.