Tôi không có vấn đề cụ thể, chỉ cần tìm hiểu sâu hơn về những gì đang diễn ra với Silex và với một số tính năng PHP mới. Này được dựa trên các mẫu mã trên trang "sử dụng" các tài liệu silex:Sự khác biệt giữa "sử dụng" và chuyển một tham số đến chức năng điều khiển
$blogPosts = array(
1 => array(
'date' => '2011-03-29',
'author' => 'igorw',
'title' => 'Using Silex',
'body' => '...', );
$app->get('/blog/{id}', function (Silex\Application $app, $id) use ($blogPosts) {
//do stuff
}
Câu hỏi
sự khác biệt là gì đây giữa đi qua các
$app
và$id
như thông số với hàm và sử dụng -ing biến số$blogPosts
?Có thể
$blogPosts
cũng đã được chuyển thành thông số cho hàm này?- Ngoài ra, tôi thường thấy
use ($app)
. Sự khác biệt giữa sử dụng -ing là gì$app
và chuyển nó là thông số ?
Vẫn cố gắng quấn quanh đầu tôi nhưng ví dụ của bạn chắc chắn hữu ích. Thật thú vị khi lưu ý rằng "sử dụng" sẽ tham chiếu giá trị $ b vì nó tồn tại tại thời điểm câu lệnh sử dụng được * khai báo *, không quan tâm khi hàm chứa câu lệnh "use" được * gọi là *. Vì vậy, "sử dụng" loại xác định một môi trường cho việc đóng cửa nó gắn liền với. Tôi giả định rằng nếu, dưới '$ b =" c ";', bạn đã đặt một hàm khác '$ e = function ($ f) sử dụng ($ b) {// cùng một công cụ};', sau đó gọi '$ e ($ a) 'sẽ in ra" ac " Tôi nhận được điều này? – patricksayshi
Vâng, có vẻ như bạn (xem bản cập nhật của tôi) – greg0ire
ví dụ tốt nhất bao giờ – user2907171