Рубрики
Uncategorized

Анализ использования объектно-ориентированного программирования PHP _tostring() и _invoke()

Автор оригинала: David Wong.

В этой статье описывается использование объектно-ориентированного программирования PHP _tostring() и _invoke(). Поделитесь для вашей справки следующим образом:

__тостринг() Магические методы

Когда объект используется в качестве строки, этот метод вызывается автоматически, и в этом методе определенная строка может быть возвращена для указания результата после преобразования объекта в строку. Этот магический метод обычно используется.

Примечание: Если этот метод не определен, объект нельзя использовать в качестве строки!

Класс не определен __tostring() Примеры методов :

php
ini_set('display_errors', 1);
class A{
  public $name;
  public $age;
  public $sex;
  function __construct($name, $age, $sex){
    $this->name = $name;
    $this->age = $age;
    $this->sex = $sex;
  }
}
$obj1 = new A ('Zhang San', 15,'Man');
Echo $obj1; // echo is followed by a string, and the object is not a string, and error will be reported
$v1 = "abc". $obj1; //. is a string connector and will cause errors
$v2 = "abx" + $obj1; //+ is an addition operator, which will cause errors
?>

Три содержания отчетов об ошибках соответственно

Обнаруживаемая фатальная ошибка: Объект класса A не удалось преобразовать в строку Обнаруживаемая фатальная ошибка: Объект класса A не удалось преобразовать в строку Примечание: Объект класса A не удалось преобразовать в int

Определения в классах __tostring() Метод

name = $name;
    $this->age = $age;
    $this->sex = $sex;
  }
  function __tostring(){
    STR = name: $this - > name;
    $str. = "Age:" $this - > age;
    $str. = ", gender:"$this - > sex;
    Return $str; // Here you can return "any string content"
  }
}
$obj1 = new A ('Zhang San', 15,'Man');
Echo $obj1; // Call _tostring(), error-free
?>

Результаты операции

Имя: Чжан 3 года: 15, пол: мужчина

__invoke() Магические методы

Когда объект используется в качестве функции, метод вызывается автоматически. Обычно это не рекомендуется.

class A{
  function __invoke(){
    Echo "< br /> I am an object, you don't call me as a function! ";
  }
}
$obj = new A();
$obj (); // At this point, the method in the class is called: _invoke ()

Больше читателей, интересующихся контентом, связанным с PHP, могут ознакомиться с темами этого сайта: Введение в объектно-ориентированное программирование Php, Введение в навыки работы с массивами PHP, Введение в базовую грамматику PHP, Краткое описание работы PHP и использования операторов, Краткое описание использования строк Php и данных php+mysql. Введение в библиотечные операции и Краткое описание общих навыков работы с базами данных на PHP

Я надеюсь, что эта статья будет полезна для разработки PHP – программ для всех.