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

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 הוא שימושי מאד במיוחד בבדיקות שונות ומשונות – כאשר יש לכם זליגת זכרון ואתם לא יודעים מהיכן היא מגיעה, או כהזדמנות לראות את יעילות הקוד והזמן שלוקח לסקריפט לרוץ.

כדאי תמיד להשאר מעודכנים! הרשמו לעדכונים של האתר במייל! - המייל יישלח כל יום ראשון בעשר בבוקר ויכיל אך ורק את המאמרים שהתפרסמו באינטרנט ישראל. ללא ספאם, ללא הצפות, ללא בלגנים. 🙂

אהבתם? לא אהבתם? דרגו!

לא אהבתי בכלללא אהבתיבסדראהבתיאהבתי מאוד (אין הצבעות)

תגיות: פורסם בקטגוריה: פתרונות ומאמרים על פיתוח אינטרנט

אל תשארו מאחור! יש עוד מה ללמוד!

הצטרפו לעדכונים!

העדכונים נשלחים אך ורק כאשר האתר מתעדכן.

רן בר-זיק

רן בר-זיק כותב כל המאמרים באינטרנט ישראל, מפתח אינטרנט מנוסה במגוון שפות ופלטפורמות.
ניתן ליצור איתי קשר באמצעות:
כתובת המייל שלי: info@internet-israel.com.
פרופיל הלינקדאין שלי
הטוויטר שלי
פרופיל הפייסבוק שלי
אני תמיד שמח לייעץ ולעזור, אך בשל עומס הפניות הרב, אני לא תמיד מצליח לענות במהירות.

מאמרים אחרונים