Hướng dẫn php yield用法 - sử dụng năng suất php
Phía trướcBài viết này là để thảo luận với bạn về việc sử dụng năng suất PHP trong trình tạo, không có vòng lặp _________ 19, __________ 20, _______21. Chỉ cần thảo luận về 2 để biến một hàm thành cách sử dụng của trình tạo. Show
Về việc sử dụng 2, tôi đã thấy hầu hết các bài viết ở lại. Cách sử dụng 2 Cách đeo dữ liệu trong 9. Hôm nay tôi muốn nói với bạn tất cả các ngữ pháp của trình tạo.Giải thích trang web chính thứcTrình tạo cho phép bạn ghi mã trong khối mã 9 để lặp lại một tập hợp dữ liệu thay vì tạo một mảng trong bộ nhớ, điều này sẽ làm cho bộ nhớ của bạn giới hạn hoặc chiếm thời gian xử lý. Ngược lại, bạn có thể viết một hàm trình tạo, giống như một hàm tùy chỉnh thông thường. Nó khác với hàm thông thường chỉ một lần. Trình tạo có thể _ 2 lần theo yêu cầu để tạo giá trị của phép lặp.Sau khi đọc trang web chính thức của trang web chính thức, anh ấy đã giải thích với anh ấy: php.net tạo ra ngữ pháp. Mỗi từ nhận ra nó, nhưng dường như nó nhận ra ý nghĩa của nó. Chúng tôi chủ yếu xem xét hai phần của trang web chính thức:
Trước tiên hãy nói về ngữ pháp. Ở bên trái năng suất là một tuyên bố gán và phía bên phải có thể là giá trị (nhưng cũng là biểu thức). Năng suất sẽ thực thi biểu thức ở bên phải trước và gửi giá trị $ bên ngoài trình tạo. Khi trình tạo nhận giá trị, câu bên trái sẽ được thực thi, được gán cho $ dữ liệu.
Ngữ pháp là như thế này. Người ta ước tính rằng mọi người vẫn hơi xấu hổ. Chúng ta hãy xem ví dụ mã bên dưới trang web chính thức. Tôi nghĩ rằng ví dụ bên trong không đồng đều.
Hiểu nó bằng ví dụ
Khi nó không rõ ràng về ngôn ngữ của con người, vì vậy hãy cho bạn biết những gì nó có thể làm và những gì bạn không thể làm thông qua một ví dụ. Mã liên quan, tôi đặt nó vào gitee. Tôi hy vọng bạn có thể sao chép nó theo hoạt động cục bộ của bạn và tự mình chạy nó, giúp hiểu nội dung tiếp theo.
Cách tạo trình tạoTrước tiên, hãy xác định một hàm, viết từ khóa năng suất trong hàm và gán hàm này cho một biến. Một máy phát được tạo ra. CODE /PHP-SILL-TEST/YIELDFENSTS.PHP là một trình tạo được xác định nhiều trình tạo theo các kết hợp cú pháp khác nhau. Mã thử /-php-m-tast /whatisgenrator.php, được sử dụng để kiểm tra các chức năng nào có thể tạo thành các trình tạo và không thể. Kết quả đang chạy như sau
Chức năng của máy phát điệnĐối tượng máy phát được trả về từ máy phát điện.
Trên đây là phương pháp của trình tạo, chúng tôi xem từng cái một. Phương thức thử nghiệm /phphp-yield-test /generatormothod.php, có một ví dụ về từng phương thức, kết quả hoạt động như sau. Hãy giải thích từng cái một. Generator::current
Đầu ra:
Xem mã 9.Thông qua trường hợp mã đầu tiên, bạn có thể nhận được một trình tạo gọi phương thức hiện tại để thực sự bắt đầu thực thi. Thực hiện cho đến khi năng suất. Nếu bạn không thể nhấn năng suất, thực thi đến cuối hàm.
Thông qua các ví dụ 2, hãy gọi hiện tại một lần, hai lần, bạn có thể thấy nhật ký thực thi mã, lần thứ hai, chỉ trả lại kết quả của lần cuối cùng cho chúng tôi, không cho phép trình tạo thực thi lại. Thông qua các ví dụ 1, gọi hàm sẽ nhận được giá trị trả về và nội dung của lợi nhuận là nội dung của phía bên trái của biểu thức năng suất. Nếu không có nội dung của biểu thức, nó là null. Generator::send
Đầu ra:
Xem mã 9.Thông qua trường hợp mã đầu tiên, bạn có thể nhận được một trình tạo gọi phương thức hiện tại để thực sự bắt đầu thực thi. Thực hiện cho đến khi năng suất. Nếu bạn không thể nhấn năng suất, thực thi đến cuối hàm. Non -geneoator sẽ ngay lập tức thực thi và nhận kết quả, không phải là đối tượng đối tượng.
Generator::next
Đầu ra:
Xem mã 9.Thông qua trường hợp mã đầu tiên, bạn có thể nhận được một trình tạo gọi phương thức hiện tại để thực sự bắt đầu thực thi. Thực hiện cho đến khi năng suất. Nếu bạn không thể nhấn năng suất, thực thi đến cuối hàm. Generator::rewind
Đầu ra:
Xem mã 9.Thông qua trường hợp mã đầu tiên, bạn có thể nhận được một trình tạo gọi phương thức hiện tại để thực sự bắt đầu thực thi. Thực hiện cho đến khi năng suất. Nếu bạn không thể nhấn năng suất, thực thi đến cuối hàm. Generator::throw
Đầu ra: 0Xem mã 9.Thông qua trường hợp mã đầu tiên, bạn có thể nhận được một trình tạo gọi phương thức hiện tại để thực sự bắt đầu thực thi. Thực hiện cho đến khi năng suất. Nếu bạn không thể nhấn năng suất, thực thi đến cuối hàm. Non -geneoator sẽ ngay lập tức thực thi và nhận kết quả, không phải là đối tượng đối tượng. Generator::valid
1Đầu ra: 2Xem mã 9.Thông qua trường hợp mã đầu tiên, bạn có thể nhận được một trình tạo gọi phương thức hiện tại để thực sự bắt đầu thực thi. Thực hiện cho đến khi năng suất. Nếu bạn không thể nhấn năng suất, thực thi đến cuối hàm.
Generator::key
3Đầu ra: 4Xem mã 9.Thông qua trường hợp mã đầu tiên, bạn có thể nhận được một trình tạo gọi phương thức hiện tại để thực sự bắt đầu thực thi. Thực hiện cho đến khi năng suất. Nếu bạn không thể nhấn năng suất, thực thi đến cuối hàm. Non -geneoator sẽ ngay lập tức thực thi và nhận kết quả, không phải là đối tượng đối tượng. Generator::__wakeup
5Đầu ra: Xem mã 9.Thông qua trường hợp mã đầu tiên, bạn có thể nhận được một trình tạo gọi phương thức hiện tại để thực sự bắt đầu thực thi. Thực hiện cho đến khi năng suất. Nếu bạn không thể nhấn năng suất, thực thi đến cuối hàm. Non -geneoator sẽ ngay lập tức thực thi và nhận kết quả, không phải là đối tượng đối tượng. Generator::getReturn 7Đầu ra: 8Xem mã 9.Thông qua trường hợp mã đầu tiên, bạn có thể nhận được một trình tạo gọi phương thức hiện tại để thực sự bắt đầu thực thi. Thực hiện cho đến khi năng suất. Nếu bạn không thể nhấn năng suất, thực thi đến cuối hàm. Non -geneoator sẽ ngay lập tức thực thi và nhận kết quả, không phải là đối tượng đối tượng. Thông qua các ví dụ 2, hãy gọi hiện tại một lần, hai lần, bạn có thể thấy nhật ký thực thi mã, lần thứ hai, chỉ trả lại kết quả của lần cuối cùng cho chúng tôi, không cho phép trình tạo thực thi lại.Thông qua các ví dụ 1, gọi hàm sẽ nhận được giá trị trả về và nội dung của lợi nhuận là nội dung của phía bên trái của biểu thức năng suất. Nếu không có nội dung của biểu thức, nó là null. Một giá trị được chuyển vào trình tạo current return : 122 và trả về giá trị _get yield data: 321 tiếp theo.Ví dụ 3 là một cuộc gọi thông thường của dòng điện, gửi. Gọi mã hiện tại và chạy năng suất cho đến khi người dùng gửi tham số đầu vào. Sau khi nhận được đầu vào, tiếp tục chạy. Hiện tại có thể nhận được giá trị pop -up của năng suất và giá trị trả về gửi trống. PHP yield 生命周期图 Ví dụ 4, gửi trực tiếp gửi, tương đương với việc gọi dòng điện, gửi. Tuy nhiên, giá trị trả lại của dòng điện sẽ không chuyển cho người dùng thông qua SEND. Trong ví dụ 21, bạn có thể thấy rằng bạn có thể gọi trực tiếp Send (1), chạy trình tạo và nhập 1 đến năng suất đầu tiên và tiếp tục chạy đến giá trị trả về của sản lượng tiếp theo get yield data: 322. Do đó, ________ 43 và _get yield data: 324 là cùng một giá trị.Nói cách khác: Bỏ qua dòng điện và gọi trực tiếp, nó sẽ mất giá trị pop -up năng suất đầu tiên. Bỏ qua sự gián đoạn và để trình tạo tiếp tục thực hiện Ví dụ 5, đây là một cuộc gọi thông thường hơn, mã1 đang chạy |