Tôi có thể sử dụng PHP 5.3 Closures như thế nào Chúng tôi sử dụng các khối trong Ruby. Tôi không bao giờ sử dụng 'for' Loop trong Ruby do sử dụng Blocks với 'each' 'find_all' 'inject' Methods.Tôi có thể sử dụng PHP 5.3 Closures như thế nào Chúng tôi sử dụng các khối trong Ruby
Làm thế nào tôi có thể sử dụng PHP 5.3 đóng cửa như Ruby Blocks và nói bye-bye để 'cho' Loops :)
Giống như giữa {và} là một Đóng (hoặc Chặn hoặc Anonymous Function)
fruit = %w[apple banana orange]
fruit.each { |f| print "#{f}, " }
tôi làm điều đó trong PHP theo cách này,
$fruit = array('apple', 'banana', 'orange');
foreach ($fruit as $f)
{
print "$f, ";
}
có cách nào để làm điều này Ruby cách sử dụng đóng cửa PHP như PHP 5.3 hỗ trợ nó.
Bạn không thể dạy các thủ thuật mới cho chó cũ. PHP có tất cả các tính năng "ưa thích" (OO, không gian tên, bao đóng) theo thời gian, nhưng nó chưa được thiết kế chính xác ngay từ đầu - nghĩa là tất cả các tính năng ngôn ngữ hiện có, nhưng không phải lúc nào cũng hữu ích và tiện lợi sử dụng. Như bạn có thể thấy từ các câu trả lời, nó vẫn là dễ nhất và thanh lịch nhất để sử dụng các hàm mảng được xác định trước. –
Ồ, một điều quan trọng khác: đóng cửa không giống như các hàm ẩn danh. Đóng cửa cần phải giữ môi trường chúng được xác định trong, để gọi chúng là đóng cửa.Các chức năng ẩn danh không cần. Và, về mặt kỹ thuật, các khối Ruby không hoạt động, chúng là một cấu trúc ngôn ngữ. Nhưng chúng có thể dễ dàng được chuyển đổi thành các hàm, bằng cách thêm chúng với 'lambda', chẳng hạn. –
Rohit, bạn có thể giải thích lý do tại sao các lập trình viên Ruby không thích "cho" vòng lặp? Dường như với tôi hầu hết thời gian họ đang sử dụng một khối nó để làm điều tương tự như một "cho" vòng lặp (hoặc "foreach" trong php) nhưng họ dường như thực sự ghét họ. Tôi đã hỏi trước và chưa bao giờ nhận được câu trả lời hay. – James