ფუნქცია 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,
    რომელიც აბრუნებს მშობელ კლასს