Hướng dẫn php yield 异步 - php mang lại lợi nhuận không đồng bộ
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ề Show
2 để biến một hàm thành cách sử dụng của trình tạo.Nội dung chính ShowShow
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ứcHiểu nó bằng ví dụ Cách tạo trình tạoChức năng của máy phát điện
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ị.
Về các đặc điểm của 2, nó đã được đưa vào chương trình nghị sự khi phát triển Hiểu nó bằng ví dụ
Chức năng của máy phát điện 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.
Cách tạo trình tạoChức năng của máy phát điện 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. 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.
Chức năng của máy phát điệnThô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.
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ã 49.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
4Đầu ra: Xem mã 49.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
4Đầu ra: 5Xem mã 49.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
7Đầu ra: 8Xem mã 49.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
0Đầu ra: 0Xem mã 49.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ã 49.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ã 49.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ã 49.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ã 49.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. Trình tạo :: __ Wakeup -Serialized Gọi lạiĐầu ra: Xem mã current return : 1249.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ị. |