שיטות סטטיות ב-PHP OOP

SSL מהימן החל מ-$3.44 בלבד
פרסומות
תכונות ב-PHP
מאפיינים סטטיים ב-PHP OOP

במדריך זה נלמד עוד על השיטות הסטטיות ב-PHP OOP. נדון לאילו מתודות סטטיות מיועדות, מתי להשתמש בהן, התחביר וההבדל בין מתודות סטטיות ללא סטטיות.

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

  • שיטות סטטיות נוצרות באמצעות סטטי מילת מפתח.
  • שיטות סטטיות של מחלקה נקראות ישירות. זה אומר שאנחנו לא צריכים ליצור את המופע של המחלקה כדי לקרוא למתודה הסטטית שלה.
  • מחלקה יכולה להכיל מתודות סטטיות ולא סטטיות.
  • כדי לקרוא למתודה הסטטית של מחלקה, אנו משתמשים באופרטור רזולוציית scope ::

תחביר של שיטה סטטית ב-PHP

<?php
class ClassName {
  public static function method() {
    echo "Hello from PHP!";
  }
}
?>

תחביר לקריאת השיטה הסטטית

ClassName::staticMethod();

דוגמה

<?php
class Example {
  public static function greetings() {
    echo "Hello from PHP!";
  }
}

// Calling static method
Example::greetings();
?>
  • בדוגמה לעיל, אנו יוצרים מחלקה המכילה מתודה סטטית.
  • אנו קוראים למתודה הסטטית של מחלקה זו בחוץ באמצעות שיטת רזולוציית scope.

קריאה למתודה סטטית בתוך המחלקה - PHP

  • ב- PHP, עצמי מילת מפתח מאפשרת לקרוא לשיטה סטטית משלה בתוך המחלקה. תראה את הדוגמה הבאה שבה אנחנו יוצרים מחלקה עם מתודה סטטית וקוראים לה בתוך הבנאי של המחלקה.
  • עצמי::methodName() הוא התחביר הכללי לקריאה למתודה סטטית בתוך המחלקה.
<?php
class Example {
  public static function greetings() {
    echo "Hello from PHP!";
  }

  public function __construct() {
    self::greetings();
  }
}

new Example();
?>

קריאה לשיטה סטטית בתוך מחלקה אחרת - PHP

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

<?php
class Example{
  public static function greetings() {
    echo "Hello from PHP!";
  }
}

class Example2{
  public function msg() {
    Example::greetings();
  }
}
?>

קריאה למתודה סטטית בכיתת ילד - PHP

SSL מהימן החל מ-$3.44 בלבד
פרסומות

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

<?php
class Example {
  protected static function getMessage() {
    return "Message from static method";
  }
}

class Child1 extends domain {
  public $name;
  public function __construct() {
    $this->name= parent::getMessage();
  }
}

$child1= new child1();
echo $child1-> name;
?>
  • בדוגמה שלמעלה, אנו יוצרים מחלקת אב עם שיטה סטטית כלשהי.
  • כמו כן, אנו יוצרים מחלקה נוספת שמרחיבה את כיתת האב.
  • קרא למתודה הסטטית של מחלקת האב באמצעות הורה מילת מפתח ואחריה שם השיטה הסטטית.

הערה: כפי שהזכרנו בסעיף הקודם שקריאה למתודה סטטית בתוך מחלקה אחרת חייבה אותה להיות ציבורית. עם זאת, במקרה של קריאה למתודה הסטטית של מחלקת האב (ירושה), ניתן לשנות את הגישה של השיטה הסטטית ציבורי or מוּגָן.

ההבדל בין שיטות סטטיות ולא סטטיות

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

הפניה לתיעוד הרשמי של PHP של שיטה סטטית.

תכונות ב-PHP
מאפיינים סטטיים ב-PHP OOP
close

הישאר מעודכן לגבי PHP!

אנחנו לא שולחים ספאם!

SSL מהימן החל מ-$3.44 בלבד
פרסומות
en English
X
גלול למעלה