Hướng dẫn dùng sleep php trong PHP
Có những lúc trong công việc lập trình ta cần mã tạm dừng theo một thời gian định trước thì trong php có hỗ trợ hàm sleep để các bạn làm điều này. Mục lụcHàm sleepTạm dừng trình dịch PHP trong thời gian định sẵn Cú pháp
Tham số $seconds chỉ số giây tạm đừng hàm trả về false nếu không thành công Ví dụ: Tags: Hàm sleep trong PHPSleep trong PHPhàm tạm dừng PHPDelay trong PHP Có những lúc trong công việc lập trình ta cần mã tạm dừng theo một thời gian định trước thì trong php có hỗ trợ hàm sleep để các bạn làm điều này. Hàm sleepTạm dừng trình dịch PHP trong thời gian định sẵn Cú pháp
Tham số $seconds chỉ số giây tạm đừng hàm trả về false nếu không thành công Ví dụ: Tags: Hàm sleep trong PHPSleep trong PHPhàm tạm dừng PHPDelay trong PHP Phương thức __sleep() và __wakeup() không được nhắc đến nhiều nhưng với dự án lớn thì sẽ cần thiết. Tài liệu tiếng việt không nói rõ nhiều về hai phương thức này chỉ còn cách xem diễn giải từ tài liệu nước ngoài, bài viết này sẽ giới thiệu về ý nghĩa và cách sử dụng của hai phương thức trên. __sleep() được thực thi khi đối tượng được lưu tạm thời thành chuỗi với hàm serialize(), phương thức sẽ trả về mảng các với các phần tử là các thuộc tính sẽ được lưu vào chuỗi với hàm serialize() __wakeup() được thực thi khi hàm unserialize được gọi, phương thức sẽ phục hồi lại đối tượng được lưu trong chuỗi trả về từ hàm serialize() Sau đây chúng ta sẽ tìm hiểu cách sử dụng từ ví dụ sau: Tạo file student.class.phpclass Student{ private $full_name=''; private $score = 0; private $grades = array(); public function __construct($full_name, $score, $grades){ $this->full_name = $full_name; $this->grades = $grades; $this->score = $score; } public function show(){ echo $this->full_name; print_r( $this->grades); } function __sleep(){ echo 'Going to sleep...'; return array('full_name', 'grades', 'score'); } function __wakeup(){ echo 'Waking up ...'; } } Ở trên __sleep() trả về mảng với 3 tham số là 3 thuộc tính sẽ được lưu tạm thời với hàm serialize() Tạo file a.php khởi tạo đối tượng, chạy hàm serialize và lưu chuỗi thông tin vào file string.txt include 'student.class.php'; $student = new Student('Ngo Van Khuong','a',array('a'=>90,'b'=>100)); $student->show(); $s = serialize($student); file_put_contents('string.txt',$s); Chạy file trên trong trình duyệt chúng ta sẽ nhận được "Ngo Van KhuongArray ( [a] => 90 [b] => 100 ) Going to sleep...", ta thấy phương thức __sleep() đã được thực thi Tạo file b.php để phục hồi phương thức từ chuỗi tạm thời include 'student.class.php'; $s = file_get_contents('string.txt'); $a = unserialize($s); $a->show(); Chạy file trên trong trình duyệt chúng ta sẽ nhận được "Waking up ...Ngo Van KhuongArray ( [a] => 90 [b] => 100 )", ta thấy đối tượng đã được phục hồi và phương thức __wakeup đã được thực thi. Tham khảo php.net Giống như các ngôn ngữ khác, PHP sleep () cũng được sử dụng để tạm dừng thực thi chương trình trong một khoảng thời gian cụ thể. Thời gian ngủ này có thể được kiểm soát bởi một tham số, gửi như một đối số cho hàm này. PHP sleep () chỉ chấp nhận một và đối số bắt buộc biểu thị khoảng thời gian, vì lý do gì, việc thực thi mã PHP gọi hàm này nên bị tạm dừng. Tham số này phải ở kiểu dữ liệu số nguyên. Và giá trị số nguyên này chỉ định số giây được truyền trong khi đưa chương trình vào chế độ ngủ. Một số ngôn ngữ như Javascript, không có các chức năng trực tiếp như sleep, mọi người có thể có được hoạt động ngủ bằng cách sử dụng một vòng lặp, yêu cầu XMLHTTP, v.v. Và đôi khi, những người mới làm quen với PHP cũng có thể sử dụng các vòng lặp PHP để giữ việc thực thi chương trình trong một thời gian, với lượng thời gian cần thiết tính bằng giây. Điều này sẽ được thực hiện bởi rất nhiều công việc, chẳng hạn như sử dụng các hàm ngày / giờ để lấy dấu thời gian hiện tại và thao tác chúng để đặt giới hạn cho các vòng lặp đang chạy để cho phép chương trình chờ thực thi vòng lặp và do đó mô phỏng giấc ngủ (). Hãy để chúng tôi có một chương trình ví dụ PHP với hàm sleep () tạm dừng thực thi với lượng thời gian được chỉ định. Putting into sleep at: " . date("H:i:s") . " Trong chương trình trên, chúng tôi đã sử dụng trình tạo số ngẫu nhiên PHP, hàm rand (), để chọn ngẫu nhiên một số giây, chương trình sẽ được đưa vào chế độ ngủ. Đối với điều đó, phạm vi được chỉ định từ 5 đến 10 giây với hàm rand (). Trước khi gọi giấc ngủ với một khoảng thời gian được chọn ngẫu nhiên, chúng tôi đã in thời gian và lặp lại tương tự, sau khi hoàn tất giấc ngủ. Chương trình sẽ hiển thị thời gian ở định dạng (Giờ: Phút: Giây), trước và sau chức năng sleep (), đồng thời, nó sẽ hiển thị số giây chương trình bị tạm dừng bằng cách sử dụng sleep (). Và kết quả đầu ra sẽ như hình bên dưới. Putting into sleep at: 16:09:02 waked up after 5 seconds. Current Time is: 16:09:07 Các hàm liên quan trong PHP đang tạm dừng thực thiCó ba hàm khác liên quan đến các hoạt động tạm dừng thực thi chương trình PHP. Các hàm này khác với hàm sleep () về đơn vị thời gian mà tham số của các hàm này được truyền. Các chức năng này được liệt kê bên dưới.
Thận trọng:Danh sách sau đây về điểm cần lưu ý khi viết các chương trình ngủ PHP. Những điểm này được sử dụng để nhận biết về bất kỳ lỗi hoặc thông báo cảnh báo nào có thể gây ra trong khi gọi các hàm ngủ PHP.
↑ Quay lại đầu trang |