Sâu thẳm trong trái tim của PHP, một đối tượng không thực sự khác biệt nhiều so với một mảng - một đối tượng có các con trỏ tới các hàm của lớp của nó, nhưng nếu không thì nó chỉ lưu trữ các biến. Kết quả là, chúng ta có thể coi một đối tượng là một mảng với vòng lặp foreach và nó sẽ lặp qua từng biến bên trong đối tượng đó - miễn là chúng có thể truy cập được. Tức là các biến riêng tư và được bảo vệ sẽ không thể truy cập được trong phạm vi chung. Hãy xem kịch bản này
$value] {
echo "$var is $value\n";
}
?>
Lưu tập lệnh đó dưới dạng đối tượng mảng. php và thử chạy nó. Đầu ra của bạn phải là cái này
$value] {
echo "$var is $value\n";
}
}
}
$bill = new person[];
$bill->outputVars[];
?>
8Lưu ý rằng biến $Password không hiển thị vì nó được đánh dấu là Riêng tư và chúng tôi đang cố truy cập nó từ phạm vi toàn cầu. Nếu chúng ta sắp xếp lại tập lệnh một chút để vòng lặp foreach được gọi bởi đối tượng, chúng ta sẽ có thể thấy biến
$value] {
echo "$var is $value\n";
}
}
}
$bill = new person[];
$bill->outputVars[];
?>
Bây giờ đầu ra là thế này
$value] {
echo "$var is $value\n";
}
}
}
$bill = new person[];
$bill->outputVars[];
?>
9Bây giờ, đối tượng tự lặp qua các biến của nó, chúng ta có thể thấy các biến riêng tư vẫn ổn. Lặp qua các đối tượng theo cách này là một cách tuyệt vời để viết tay các hàm tuần tự hóa - chỉ cần nhớ đặt hàm bên trong đối tượng, nếu không thì dữ liệu riêng tư và được bảo vệ sẽ bị bỏ qua
Bạn muốn học PHP 7?
Hacking with PHP đã được cập nhật đầy đủ cho PHP 7 và hiện có sẵn dưới dạng PDF có thể tải xuống. Nhận hơn 1200 trang học PHP thực hành ngay hôm nay
Nếu điều này hữu ích, vui lòng dành chút thời gian để nói với những người khác về Hacking với PHP bằng cách tweet về nó
Trong hướng dẫn này, chúng ta xem xét vòng lặp PHP foreach[]. Chúng tôi cũng xem xét cách sử dụng nó trong khi làm việc với một mảng được lập chỉ mục hoặc kết hợp
Mục lục - PHP foreach
- foreach[] là gì?
- Mã và giải thích
- mảng được lập chỉ mục
- mảng kết hợp
- Bớt tư tưởng
foreach trong PHP là gì?
Phương thức
foreach [iterable as $key => $value]
statement
8 được sử dụng để lặp qua các phần tử trong một mảng được lập chỉ mục hoặc mảng kết hợp. Nó cũng có thể được sử dụng để lặp lại các đối tượng. Điều này cho phép bạn chạy các khối mã cho từng phần tửCú pháp của PHP foreach[]
Phương thức foreach[] có hai cú pháp, một cú pháp cho mỗi loại mảng
Cú pháp cho các mảng được lập chỉ mục như được đưa ra trong khối mã sau
foreach [iterable as $value]
statement
Cú pháp cho mảng kết hợp
foreach [iterable as $key => $value]
statement
Ở đây,
foreach [iterable as $key => $value]
statement
9 là tham số bắt buộc. Nó là mảng hoặc biến chứa mảng.
0 là một biến lưu trữ phần tử hiện tại trong mỗi lần lặpMảng được liên kết, sử dụng các khóa và giá trị, do đó,
1 &
2 trong cú pháp thứ hai biểu thị giống nhau cho phù hợpMã & Giải thích
Trong phần này, trước tiên chúng ta xem cách hàm
foreach [iterable as $key => $value]
statement
8 hoạt động trên một mảng được lập chỉ mục, sau đó chúng ta xem nó hoạt động trên một mảng kết hợpPHP Foreach[] trên các mảng được lập chỉ mục
Đầu ra của đoạn mã trên sẽ là
$value] {
echo "$var is $value\n";
}
}
}
$bill = new person[];
$bill->outputVars[];
?>
1PHP Foreach[] trên một mảng Associated
$value] {
echo "$var is $value\n";
}
}
}
$bill = new person[];
$bill->outputVars[];
?>
2Đầu ra của đoạn mã trên sẽ là
$value] {
echo "$var is $value\n";
}
}
}
$bill = new person[];
$bill->outputVars[];
?>
3Bây giờ hãy xem trường hợp chúng ta truyền đối số thứ hai
Như bạn có thể thấy khóa và giá trị của mảng kết hợp đã được in. Ngoài ra, chúng tôi đã thay thế
4 bằng
5 để dễ đọc hơnBớt tư tưởng
Phương thức
foreach [iterable as $key => $value]
statement
8 sẽ trả về lỗi trong trường hợp bạn sử dụng nó trên các biến có kiểu dữ liệu khác. Ngoài ra, phương pháp foreach [iterable as $key => $value]
statement
8 không sửa đổi các giá trị của con trỏ bên trong