declare – יכולת שליטה בקוד PHP שאתם לא מכירים

flow control structure שמעט מאד מכירים ויכול להיות שימושי עבור בדיקות או ווידוא חיבור של מסד נתונים.

declare הוא שיטה לשליטה בזרימה של קוד (flow control structure) המשמשת אותנו למדידות שונות. לא רבים משתמשים ב-decalre אך לעיתים הוא שימושי מאד – במיוחד בבדיקות אך לא רק. נכון לגרסת PHP 5.3 אנו יכולים להשתמש ב-declare רק יחד עם ticks, אבל בעתיד זה יכול להשתנות.

בואו ונלמד איך עושים declare! בדומה לשיטות אחרות של שליטה בזרימת קוד (כמו while) אפשר לעשות את זה בשני אופנים:


declare(ticks=1) {
    // entire script here
}

או:


declare(ticks=1);
// entire script here

נשאלת השאלה מה זה בעצם עושה? כל קוד שנמצא בתוך ה-declare (או מתחת לו) נחשב כ'טיק', טיק במקרה הזה זו לא תנועה לא רצינית אלא הוא מתקיים בכל פעם שיש פעולה כלשהי. הגדרת משתנה, חיבור של משתנה, הוספה וכל פעולה שהיא (כמעט).

שימו לב לקוד הבא, בכל פעם שמתקיים tick אז שמתי הערה:


declare (ticks=1)
{
     $pass = md5('qwerty'); /* Tick executed */
     $pass = strrev($pass);  /* Tick executed */
     echo $pass;  /* Tick executed */
}

בכל פעולה שהיא רץ tick, אם אנו רוצים ש-tick ירוץ בכל שתי פעולות, אנו נשנה את הצהרת ה-declare למשהו בסגנון הבא:


declare (ticks=2)
{
     $pass = md5('qwerty'); 
     $pass = strrev($pass); /* Tick executed */
     echo $pass; 
}


אפשר כמובן לבחור שה'טיק' ירוץ כל שלוש פעולות, או אלף פעולות לצורך העניין, למשל:


declare (ticks = 3)
{
     $pass = md5('qwerty');
     $pass = strrev($pass);
     echo $pass;  /* Tick executed */
}  

אז הבנו איך משתמשים ב-declare ומה זה tick, עכשיו נלמד על הצמדה של פונקציה שרצה בכל פעם שיש tick. נניח שיש פונקציה שאנו רוצים שתרוץ בכל פעם שמתבצע tick, כל מה שעלינו לעשות זה ליצור אותה ולהצמיד אותה ל-tick באמצעות הפונקציה register_tick_function.

הכי טוב להסביר עם דוגמא:


< ?php
function my_function() {
    print 'tick! ';
}
register_tick_function('my_function');

declare(ticks = 1) {
	 $pass = 'qwerty'; /* Tick executed */
     $pass = 'moshe';  /* Tick executed */
     $pass = 'hahaha';  /* Tick executed */-
}

בדוגמא שלעיל יודפס טיק בכל פעם שתתרחש פעולה כלשהי. אם יש לנו while או כל לולאה אחרת, טיק ירוץ על כל ריצה של לולאה.

tick הוא שימושי מאד במיוחד בבדיקות שונות ומשונות – כאשר יש לכם זליגת זכרון ואתם לא יודעים מהיכן היא מגיעה, או כהזדמנות לראות את יעילות הקוד והזמן שלוקח לסקריפט לרוץ.

פוסטים נוספים שכדאי לקרוא

מיקרו בקרים

בית חכם עם ESPHome ו Home Assistant

הסבר על הום אסיסטנט, מערכת הקוד הפתוח לבית חכם ואיך לחבר אליה מיקרובקרים.

פיתוח ב-JavaScript

Axios interceptors

תכנון נכון של קריאות AJAX באפליקציה ריאקטית וניהול השגיאות או ההצלחות עם פיצ׳ר נחמד של axios

ספריות ומודולים

מציאת PII באמצעות למידת מכונה

כך תגנו על משתמשים שלכם שמעלים מידע אישי רגיש כמו תעודות זהות באמצעות שירות אמאזוני.

מיקרו בקרים

הפעלת מסך oled קטנטן עם esp32

יצירת מערכת מולטימדיה שלמה בגודל של בול דואר עם מיקרובקר ובעלות של דולרים בודדים. וגם על הדרך נלמד על ת׳רדים

גלילה לראש העמוד