“=>” Trong PHP có nghĩa là gì?


98

Không những gì =>nhà điều hành có nghĩa là trong các mã sau đây?

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

Mã là một bình luận tại PHP.net. Người dùng không chỉ định giá trị của $user_list, $userhoặc $pass. Tôi thường thấy điều đó =>có nghĩa là bằng hoặc lớn hơn.

Tuy nhiên, tôi không chắc chắn về mục đích của nó ở đây vì nó không được chỉ định. Tôi đọc mã là

  1. xử lý danh sách người dùng bằng số nguyên
  2. sao cho giá trị của mỗi người dùng bằng hoặc lớn hơn mật khẩu

Những điều trên không có ý nghĩa đối với tôi.


Tôi đã cập nhật câu trả lời của mình, quên từ khóa 'mảng'.
Tyler Carter


@Masi Sai lầm bên em. Lấy làm tiếc.
kapa

Tôi sẽ nói => gán một giá trị cho mảng và sử dụng một khóa làm chỉ mục. Vì vậy, trong trường hợp của bạn, mảng mà bạn gọi là $ user_list sử dụng $ user làm khóa chỉ mục. Vòng lặp foreach lặp lại và gán cho mọi phần tử trong mảng đó giá trị $ pass.
Julian

Câu trả lời:


125

=>là dấu phân cách cho các mảng kết hợp. Trong ngữ cảnh của vòng lặp foreach đó, nó sẽ gán khóa của mảng cho $uservà giá trị cho $pass.

Thí dụ:

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

Lưu ý rằng điều này cũng có thể được sử dụng cho các mảng được lập chỉ mục số.

Thí dụ:

$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

Nó có nghĩa là gán khóa cho $ user và biến cho $ pass

Khi bạn gán một mảng, bạn làm như thế này

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

Nó sử dụng cùng một ký hiệu để xử lý mảng trong câu lệnh foreach. Dấu '=>' liên kết khóa và giá trị.

Theo Hướng dẫn sử dụng PHP , cặp khóa / giá trị '=>' được tạo.

Ngoài ra, Bằng hoặc Lớn hơn là cách ngược lại: '> ='. Trong PHP, dấu lớn hơn hoặc nhỏ hơn luôn đi trước: '> =', '<='.

Và chỉ là một lưu ý phụ, việc loại trừ giá trị thứ hai không hoạt động như bạn nghĩ. Thay vì chỉ cung cấp cho bạn chìa khóa, nó thực sự chỉ mang lại cho bạn một giá trị:

$array = array("test" => "foo");

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

foreach($array as $value)
{
    echo $value; // Echoes "foo"
}

1
Ví dụ cuối cùng của bạn có gì đó sai, vì tôi nhận được thông báo lỗi Parse error: syntax error, unexpected T_DOUBLE_ARROW in /var/www/cha.php on line 2.
Léo Léopold Hertz 준영

Rất tiếc Quên thêm Từ khóa Mảng. Hãy thử điều đó
Tyler Carter

12

Mã như "a => b" có nghĩa là, đối với một mảng kết hợp (một số ngôn ngữ, như Perl , nếu tôi nhớ không nhầm, hãy gọi chúng là "băm") , rằng 'a' là một khóa và 'b' là một giá trị.

Bạn có thể muốn xem các tài liệu của, ít nhất là:

Ở đây, bạn đang có một mảng, được gọi $user_list, và bạn sẽ lặp lại nó, lấy cho mỗi dòng, khóa của dòng trong $uservà giá trị tương ứng trong $pass.

Ví dụ, mã này:

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

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

Sẽ giúp bạn có được kết quả này:

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

(Tôi đang sử dụng var_dumpđể tạo đầu ra đẹp, tạo điều kiện gỡ lỗi; để có đầu ra bình thường, bạn sẽ sử dụng echo)


"Bằng hoặc lớn hơn" là cách gọi khác của arround: "lớn hơn hoặc bằng", được viết bằng PHP, như thế này; "> ="
Điều tương tự đối với hầu hết các ngôn ngữ có nguồn gốc từ C: C ++, JAVA, PHP, ...


Một lời khuyên: Nếu bạn mới bắt đầu với PHP, bạn chắc chắn nên dành một ít thời gian (có thể vài giờ, thậm chí có thể nửa ngày hoặc thậm chí cả ngày) để xem qua một số phần của hướng dẫn :-)
Nó ' d giúp bạn nhiều!


6

Một mảng trong PHP là một bản đồ của các khóa đến các giá trị:

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

Nếu bạn muốn thực hiện điều gì đó với từng cặp khóa-giá trị trong mảng của mình, bạn có thể sử dụng foreachcấu trúc điều khiển:

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

Biến $ mảng là mảng bạn sẽ sử dụng. Các biến $ key và $ value sẽ chứa một cặp khóa-giá trị trong mỗi lần lặp lạiforeach vòng lặp. Trong ví dụ này, đầu tiên chúng sẽ chứa "màu vàng" và 3, sau đó là "màu xanh lá cây" và 4.

Bạn có thể sử dụng một ký hiệu thay thế nếu bạn không quan tâm đến các phím:

foreach ($array as $value)

"Foreach" có thực sự là một toán tử? Bạn có nguồn không?
Peter Mortensen

Về mặt kỹ thuật, đó là một cấu trúc điều khiển: php.net/manual/en/control-structures.foreach.php Tôi đã cập nhật câu trả lời cho phù hợp.
Scharrels

4

Mảng trong PHP là mảng kết hợp (còn được gọi là từ điển hoặc hàm băm) theo mặc định. Nếu bạn không chỉ định rõ ràng khóa cho một giá trị, trình thông dịch sẽ âm thầm làm điều đó cho bạn. Vì vậy, biểu thức bạn đã có ở đó lặp lại $user_list, làm cho khóa có sẵn dưới dạng $uservà giá trị có sẵn dưới $passdạng các biến cục bộ trong phần thân của foreach.


3

$user_list là một mảng dữ liệu khi được lặp lại có thể được chia thành tên và giá trị của nó.

Trong trường hợp này, tên của nó là $uservà giá trị của nó là $pass.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.