מהן שיטות קסם ב- PHP? ואיך ליישם אותם?



מאמר זה יספק לכם ידע מפורט ומקיף על שיטות הקסם השונות ב- PHP עם דוגמאות.

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

מהן שיטות קסם ב- PHP?

שיטות שמתחילות עם 2 קו תחתון (__) נקראות בדרך כלל שיטות קסם ב- PHP. שמות שיטות אלה מוגבלים לרשימה כלשהי של PHP מילות מפתח נתמכות שמורות. לכן אין להגדיר כל פונקציה בשם שיטות הקסם של PHP.





Magic-Methods-in-PHP

בדרך כלל, פונקציות אלה צריכות להיות מוגדרות על ידי המשתמש ואין צורך להתקשר אליהן במפורש.



רשימת שיטות הקסם ב- PHP

  • __לִבנוֹת()
  • __להרוס()
  • __call ($ fun, $ arg)
  • __callStatic ($ fun, $ arg)
  • __get ($ נכס)
  • __set ($ נכס, $ ערך)
  • __isset ($ content)
  • __unset ($ content)
  • __לִישׁוֹן()
  • __תתעורר()
  • __toString ()
  • __לעורר()
  • __set_state ($ array)
  • __clone ()
  • __debugInfo ()
  • __לִבנוֹת(): זו שיטה שמתקשרת אוטומטית לאחר יצירת אובייקט. ניתן להגדיר כאן כל מספר ארגומנטים שיעברו בעת יצירת אובייקטים.
מחלקה לדוגמא {פונקציה user_def () {echo 'משתמש מוגדר קונסטרוקטור'} פונקציה __construct () {echo 'constructor מוגדר מראש'}} $ obj = דוגמא חדשה ()?>

  • __להרוס(): Destructor הוא תכונה נפוצה של השפה מונחה האובייקטים שמתופעלת ברגע שאין התייחסויות אחרות לאובייקט מסוים.
user_def () // אובייקט הסימון נהרס או לא הד is_object ($ obj). ' '?>

  • __call ($ fun, $ arg): שיטה זו נקראת כאשר נקראת שיטה לא מוגדרת או בלתי נגישה. מה שאומר שזה נקרא כשמופעלת על אובייקט שיטה לא מוגדרת או בלתי נגישה.
run ('מורה') // אם השיטה שלא קיימת נקראת בתוך האובייקט, אז שיטת __call () תיקרא אוטומטית. $ obj-> eat ('ashok', 'orange') $ obj-> user_define ()?>



כיצד ליצור לוח מחוונים כוח
  • __callStatic ($ fun, $ arg): שיטה זו נקראת כאשר מפעילים שיטה לא מוגדרת או בלתי נגישה באופן סטטי.
user_define ()?>

  • __get ($ נכס): שיטה זו משמשת לקבלת ערכים עבור מאפייני מחלקה שנוצרו באופן דינמי על ידי עומס יתר על נכסי PHP.
name = $ name $ this-> reg = $ reg} פונקציה ציבורית __get ($ propertyName) {if ($ propertyName == 'reg') {if ($ this-> reg> 30) {return $ this-> reg - 10} אחר {להחזיר $ את זה -> $ propertyName}} אחר {להחזיר $ this -> $ propertyName}}} $ obj = תלמיד חדש ('Ashok', 60) // מייצב את האובייקט בכיתת Student והקצה ערכים ראשוניים לנכסים עם הבנאי. הד 'שם :'. $ obj-> שם. '' // כאשר ניגשים לנכס הפרטי, השיטה __get () תיקרא אוטומטית, כך שנוכל לקבל את ערך הנכס בעקיפין. הד 'רג'. $ obj-> רג. '' // השיטה __get () נקראת אוטומטית , והיא מחזירה ערכים שונים בהתאם לאובייקט עצמו. ?>

  • __set ($ property, $ value): שיטה זו משמשת להצבת ערכים עבור מאפייני מחלקה שנוצרו באופן דינמי על ידי עומס יתר על נכסי PHP.
name = $ name $ this-> reg = $ reg} פונקציה ציבורית __set ($ property, $ value) {if ($ property == 'reg') $ value $ property = $ value function public public fun () {echo 'My שם הוא '. $ this-> name.', מספר הרישום שלי הוא '. $ this-> reg}} $ obj = סטודנט חדש (' Ashok ', 40) // שים לב שהערך הראשוני ישתנה על ידי הקוד לְהַלָן. $ obj-> name = 'Sushma' // המאפיין 'name' יוקצה בהצלחה. אם אין שיטת __set (), התוכנית תשליך חריג. $ obj-> age = 16 // המאפיין 'reg' יוקצה בהצלחה. $ obj-> reg = 160 // 160 הוא ערך לא חוקי, ולכן לא ניתן להקצות אותו. $ obj-> כיף ()?>

  • __isset ($ תוכן); שיטה זו תיקרא בעת קריאה ל- isset () או ריק () לחבר לא מוגדר או בלתי נגיש. הוא מופעל באופן אוטומטי בעת בדיקה אם מוגדר מאפיין טעון יתר הנדרש או לא, באמצעות הפונקציה PHP isset ().
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} פונקציה ציבורית __isset ($ content) {echo 'המאפיין {$ content} הוא פרטי , השיטה __isset () נקראת באופן אוטומטי. 'echo isset ($ this -> $ content)}} $ obj = תלמיד חדש (' Ashok ', 30) // הוקצה במקור. echo isset ($ obj-> gender), 'echo isset ($ obj-> name),' 'echo isset ($ obj-> reg),' '?>

  • __unset ($ content): שיטה זו תיקרא בעת קריאה ל- reset () לחבר לא מוגדר או לא נגיש.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} פונקציה ציבורית __unset ($ content) {echo 'זה נקרא אוטומטית כאשר אנו משתמשים בשיטת unset () מחוץ לכיתה. 'echo isset ($ this -> $ content)}} $ obj = תלמיד חדש (' Ashok ', 30) // הוקצה במקור. unset ($ obj-> gender) unset ($ obj-> name) unset ($ obj-> reg)?>

  • __לִישׁוֹן(): שיטה זו נקראת תחילה בזמן ביצוע סדרת (). הוא מחזיר את מערך המאפיינים של האובייקט על ניקוי אובייקטים של מחלקת PHP לפני סדרת סדר.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} פונקציה ציבורית __sleep () {echo 'זה נקרא כאשר שיטת serialize () נקראת מחוץ לכיתה. '$ this-> name = base64_encode ($ this-> name) מערך החזרה (' name ',' reg ') // עליו להחזיר ערך שהאלמנטים הם שם המאפיינים שהוחזרו. }} $ obj = סטודנט חדש ('אשוק') // הוקצה בתחילה. הד סדרתי ($ obj) הד '?>

  • __תתעורר(): שיטה זו נקראת בזמן שמבוצע deserialization (). זה יהפוך את העבודה לשחזור מאפייני ומשאבי האובייקטים בהפעלת עריקת ייעול ().
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} פונקציה ציבורית __sleep () {echo 'זה נקרא כאשר שיטת serialize () נקראת מחוץ לכיתה. '$ this-> name = base64_encode ($ this-> name) מערך החזרה (' name ',' reg ') // עליו להחזיר ערך שהאלמנטים הם שם המאפיינים שהוחזרו. } פונקציה ציבורית __wakeup () {echo 'זה נקרא כאשר שיטת unserialize () נקראת מחוץ לכיתה. '$ this-> name = 2 $ this-> gender =' זכר '}} $ obj = תלמיד חדש (' אשוק ') // הוקצה במקור. var_dump (serialize ($ obj)) var_dump (unserialize (serialize ($ obj)))?>

  • __toString (): שיטה זו תיקרא תוך שימוש בשיטת הד להדפסת אובייקט ישירות. צפוי להחזיר ערך מחרוזת תוך שימוש במופעי מחלקה עם הצהרות הדפסה של PHP.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} פונקציה ציבורית __toString () {return 'go go go'}} $ obj = תלמיד חדש ('Ashok') // הוקצה בתחילה. הד $ obj?>

  • __לעורר(): שיטה זו מוגדרת בכיתה שתיקרא תוך ניסיון לקרוא לאובייקט בצורה של קריאה לתפקוד.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} פונקציה ציבורית __invoke () {echo 'זה אובייקט'}} $ obj = סטודנט חדש ('Ashok') // הוקצה בתחילה . $ obj ()?>

  • __set_state ($ array): שיטה זו נקראת בעת קריאה ל- var_export (). זוהי שיטה סטטית המופעלת בעת ייצוא מערך המאפיינים של אובייקטים ומצפה למשתנה מערך כזה כטיעונו.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender}} $ obj = תלמיד חדש ('אשוק') // הוקצה בתחילה. var_export ($ obj)?>

  • __clone (): שיטה זו נקראת כאשר מועתק האובייקט.
name = $ name $ this-> reg = $ reg $ this-> gender = $ gender} פונקציה ציבורית __clone () {echo __METHOD __. 'אתה משכפל את האובייקט. '}} $ obj = סטודנט חדש (' אשוק ') // הוקצה בתחילה. $ obj2 = שיבוט $ obj var_dump ('object1:') var_dump ($ obj) הד '' var_dump ('object2:') var_dump ($ obj2)?>

כיצד לבדוק מסד נתונים
  • __debugInfo (): שיטה זו נקראת על ידי var_dump () תוך כדי השלכת אובייקט כדי לקבל את המאפיינים שיש להציג. אם השיטה לא מוגדרת באובייקט, כל הנכסים הציבוריים, המוגנים והפרטיים יוצגו.
prop = $ val} פונקציה ציבורית __debugInfo () {return ['propSquared' => $ this-> prop ** 2,]}} var_dump (דוגמא חדשה (22))?>

עם זאת, אנו מגיעים לסוף שיטת הקסם הזו במאמר PHP. אני מקווה שקיבלתם מושג על שיטות הקסם השונות ב- PHP.

בדוק את מאת אדוריקה, חברת למידה מקוונת מהימנה עם רשת של יותר מ -250,000 לומדים מרוצים הפרוסים ברחבי העולם.

יש לך שאלה עבורנו? אנא הזכיר זאת בסעיף ההערות של ” שיטות קסם ב PHP ”ואחזור אליך.