تابع sleep در php

  • آپدیت شده در تاریخ

تابع sleep در php

همانند دیگر زبان های برنامه نویسی ، تابع sleep در php نیز برای ایجاد وقفه در اجرای برنامه یا اسکریپت مورد نظر برای لحظه های خاص استفاده می شود . مدت زمان sleep یا به اصطلاح به خواب رفتن برنامه توسط یک پارامتر ورودی به عنوان آرگومان به تابع sleep در php تعریف می شود .

تابع sleep در php فقط و فقط یک ورودی اجباری برای یک دوره زمانی را برای استاپ می پذیرد . این پارامتر باید با data type (نوع داده ای) عددی باشد و این مقدار عددی برحسب ثانیه است .

تابع sleep در php

بعضی زبان های برنامه نویسی مثل جاوا اسکریپت ،  تابع مستقیمی برای sleep یا به اصطلاح به خواب رفتن برنامه ندارند . افراد ممکن است همچنین عملکردی را توسط یک حلقه ، درخواست XMLHTTP (همان ajax و در سمت سرور با php عملی کنند) و غیره … .

البته با جی کوئری این کار بسیار راحت است . ! و حتی بعضی مواقع افرادی که تازه با php آشنا شدند ممکن است با یک حلقه زمان اجرای دستورات بعدی را برای چند ثانیه به وقفه بندازند . این کار بسایر می تواند زمان بر باشد ، مثلا استفاده از توابع date/time برای دریافت timestamp فعلی و ست کردن آن به عنوان لیمیت اجرای حلقه و …. . ولی در اینجا ما به سادگی از تابع sleep در php استفاده می کنیم .

مثال : تابع sleep در php

خب یک مثال از اجرای برنامه با وقفه دادن به آن با تابع sleep در php را ببینیم.

در اسکریپت php بالا ، از یک تابع برای ساخت اعداد تصادفی (random) استفاده کردیم ، تابع rand() ، بطور اتفاقی یک عدد بر ثانیه انتخاب می کند  و بعد آن را به تابع sleep پاس می دهد . در این مثال محدوده (range) مشخص شده بین ۵ تا ۱۰ ثانیه برای تابع rand() است .

قبل از فراخوانی تابع sleep با مدت زمان تصادفی انتخاب شده ، ما تابع date را قبل و بعد از آن تکرار کردیم  . اسکریپت زمان را در فرم (ساعت : دقیقه : ثانیه ) نشان می دهد . بعد از احرای تابع sleep() خواهیم دیدی که چند ثانیه وقفه توسط تابع Sleep ایجاد شده است .

توابع مرتبط با توقف اجرای برنامه در php

سه تابع دیگر هم برای ایجاد وقفه در اجرای اسکریپت php وجود دارد . تفاوت آنها با تابع php فقط در دریافت مقدار پارامتر آن ها بر حسب زمان است .

این توابع در زیر لیست شده اند :

  • تابع usleep() – این تابع مقدار را به صورت میکروثانیه (۱۰ به توان ۶) به جای ثانیه در تابع sleep() در php می پذیرد
  • تابع time_nanosleep() – برخلاف تابع sleep() و usleep() ، این تابع زمان را برحسب نانوثانیه قبول می کند .
  • تابع time_sleep_until() – این تابع مقدار timestamp را با نوع داده ای float (اعشاری) برای ایجاد وقفه دریافت می کند . تا زمانی که timestamp به صورت اعشار است ، می توانیم این مقدار را میکروثانیه ارسال کنیم.

احتیاط :

موارد زیر را هنگام استفاده از تابع sleep در php به خاطر داشته باشید. نکته های زیر هنگام اجرای تابع sleep در php که با خطاهایی مثل warning notice مواجه شدید بسیار به شما کمک خواهند کرد .

  • اگر یه مقدار منفی را به تابع sleep در php پاس بدید ، در اینصورت یک خطای warning را در مرورگر نمایش میدهد

برای آشنایی با انواع خطاها در php کلیک کنید.

  • همچنین ارسال آرگومان با یک data typeی بجز integer (عددی) می تواند باعث خطایی مثل زیر شود .

  • در هنگام استفاده از تابع time_sleep_until() ، اگر یک timestamp آینده که هنوز نرسیده است ، وارد کنیم ، در اینصورت یک خطای warning را چاپ می کند.

هر سوالی داشتید از قسمت نظرات ارسال کنید . سریعا پاسخگوی سوالات شما هستیم .

موفق و پیروز باشید .

حسن شفیعی علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم

آموزش های رایگان بیشتر در اینستاگرام ما ...

NETPARADIS /
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۱)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. محمد ۱۰ مهر ۱۳۹۹

    عالی بود

    پاسخ
دوره های آموزشی

دانلود رایگان کتاب آموزش PHP

صفر تا صد PHP و MySQL را یکجا یاد بگیرید
همین الان دانلود کن
نگران نباشید. ایمیل‌های مزاحم نمی‌فرستیم
close-link