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

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

רספברי פיי

הרצת גו על רספברי פיי

עולם הרספברי פיי והמייקרים ניתן לתפעול בכל שפה – לא רק פייתון או C – כאן אני מסביר על גו

רשת האינטרנט

איך בונים custom GPT משלכם?

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

בניית אתרי אינטרנט

לאחסן שרת בבית? זה לגמרי אפשרי

האם אפשר להתקין שרת בבית ולחשוף אותו באופן מאובטח החוצה בלי שאיראני ישתלט לי על המקרר? התשובה היא כן.

DALL·E 2024-09-06 12.34.24 - A visually engaging post about Python and cryptographic problems. The image should feature a dark-themed background with a glowing, futuristic Python
פתרונות ומאמרים על פיתוח אינטרנט

בעיות במימוש של פונקציות קריפטוגרפיות בפייתון

היום (16 לספטמבר) ממש, אני מעביר הרצאה ב-PyconIL 2024 על בעיות קריפטוגרפיות באפליקציות פייתון. לצערי אי אפשר להכניס את כל הבעיות הקריפטוגרפיות להרצאה אחת או

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