Η συνάρτηση get_called_class

Η συνάρτηση get_called_class επιστρέφει το όνομα της κλάσης, στο πλαίσιο της οποίας κλήθηκε μια στατική μέθοδος. Αυτό είναι χρήσιμο όταν εργάζεστε με κληρονομικότητα, όταν πρέπει να προσδιορίσετε από ποια ακριβώς κλάση κλήθηκε η μέθοδος.

Σύνταξη

phpget_called_class();

Παράδειγμα

Ας δημιουργήσουμε δύο κλάσεις και ας καλέσουμε τη μέθοδο από την παιδική κλάση:

php<?php
  class ParentClass {
    public static function test() {
      return get_called_class();
    }
  }

  class ChildClass extends ParentClass {}

  echo ChildClass::test();
?>

Αποτέλεσμα εκτέλεσης κώδικα:

php'ChildClass'

Παράδειγμα

Ας ελέγξουμε τη λειτουργία της συνάρτησης όταν καλείται από την γονική κλάση:

php<?php
  class A {
    public static function who() {
      return get_called_class();
    }
  }

  class B extends A {}

  echo A::who();
  echo "\n";
  echo B::who();
?>

Αποτέλεσμα εκτέλεσης κώδικα:

php'A'
'B'

Παράδειγμα

Χρήση της συνάρτησης για δημιουργία αντικειμένων της απαιτούμενης κλάσης:

php<?php
  class Factory {
    public static function create() {
      $class = get_called_class();
      return new $class;
    }
  }

  class Product extends Factory {}

  $obj = Product::create();
  echo get_class($obj);
?>

Αποτέλεσμα εκτέλεσης κώδικα:

php'Product'

Δείτε επίσης

  • τη συνάρτηση get_class,
    που επιστρέφει την κλάση ενός αντικειμένου
  • τη συνάρτηση get_parent_class,
    που επιστρέφει την γονική κλάση