<MyRusakov.ru />

Финансовая грамотность от А до Я

Финансовая грамотность от А до Я

Данный курс в кратчайшие сроки обучит Вас финансовой грамотности. Эти знания позволят Вам получить, как минимум, серьёзную финансовую стабильность, а, как максимум, финансовую независимость.

В рамках курса даётся большое количество практических заданий, благодаря которым Вы не просто посмотрите курс, а действительно выполните ряд важнейших шагов, о которых в нём говорится.

Помимо самого курса Вас ждёт ещё бесплатный ценный Бонус: «Ранний выход на пенсию». В рамках этого Бонуса Вы узнаете, какой должен быть капитал конкретно в Вашем случае, варианты его получения, а также какие есть стратегии вывода капитала на пенсии и где их можно протестировать.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Магические методы в PHP

Магические методы в PHP

Здравствуйте! В этой статье я расскажу Вам о магических методах в PHP. Они позволяют программисту получить больший контроль над кодом, который будет исполняться, или же добавляют так называемый "синтаксический сахар", вследствие чего код можно писать яснее и чище.

Магические методы в PHP – это методы, которые начинаются с двойного подчеркивания, поэтому, согласно официальной документации по языку PHP, будьте бдительны, если намереваетесь использовать двойное подчеркивание, так как интерпретатор языка оставляет за собой право все методы, начинающиеся с двойного подчеркивания считать "магическими".

Итак, вот список этих методов:

  1. __construct, __destruct
  2. __call, __callStatic
  3. __get, __set
  4. __sleep, __wakeup
  5. __toString
  6. __invoke

Теперь подробнее о каждом методе.

__construct, __destruct

Эти методы вызываются автоматически при создании и уничтожении объекта. Метод __construct вызывается при создании объекта некоторого класса, а метод __destruct – при уничтожении этого объект. Метод __destruct в PHP используется редко, ввиду небольшого срока жизни скрипта.

__call, __callStatic

Эти два метода используются для одного и того же – для вызова методов, которые не созданы программистом в классе явно. Метод __call применяется для вызова несуществующих методов в контексте объекта, т.е. для вызова методов объекта. Метод __callStatic применяется для вызова методов в контексте класса, т.е. для вызова статических методов. Оба метода принимают в качестве параметров два аргумента: первый - $name – имя фиктивного метода, которое является регистрозависимым, т.е. $obj->method() и $obj -> Method() – будут разные методы, второй $arguments – массив аргументов метода:

<?php

  class MyClass  {
    public function __call($name, $arguments) {
      echo "Вызван метод '$name'  со следующими аргументами " . implode(', ', $arguments) . PHP_EOL;
    }
    public static function __callStatic($name, $arguments) {
      echo "Вызван статический метод '$name'  со следующими аргументами " . implode(', ', $arguments)  . PHP_EOL;
    } 
  }
  
  $obj = new MyClass;
  $obj -> objMethod("метод объекта");
  MyClass::objMethod("метод класса");
  
?>

__get, __set

Эти магические методы выполняют функцию установки и получения значения поля класса, которого не существует, т.е. с помощью них происходит обращение к несуществующим свойствам объекта. Пример:

<?php
  
  class MyClass
  {
    // внутреннее хранилище
    private $storage;
    
    
    public function __get($name) 
    {
      return $storage[$name];
    }
    
    public function __set($name, $value) 
    {
      $storage[$name] = $value;
    }
    
  }
  
  $obj = new MyClass;
  $obj -> name = "Супер-класс";
  print $obj -> name; 

?>

__sleep, __wakeup

Применяются при сериализации объекта. Не буду останавливаться на этом, так как на сайте уже есть подробная статья об этих методах.

__toString

Этот метод Вы можете использовать тогда, когда хотите, чтобы объект мог быть свободно преобразован в строку. Обратите внимание, что метод обязательно должен возвращать строку, иначе интерпретатор выдаст ошибку. Пример:

<?php
  
  class MyClass
  {
    
    public function __toString() {
      return "Это мой класс";
    }
    
  }
  
  $obj = new MyClass;
  print $obj;

?>

__invoke

Этот метод используется для того, чтобы вызвать объект класса как функцию. Пример:

<?php
  
  class MyClass
  {
    
    public function __invoke($arg) {
      print $arg;
    }
    
  }
  
  $obj = new MyClass;
  // вызывается метод __invoke
  print $obj("Обращение к объекту как к функции");

?>

Таким вот образом, теперь Вы знаете, что магические методы PHP могут использоваться там, где нужна функциональность, которую неудобно реализовывать стандартными средствами. А как Вы будете использовать их зависит только от Ваших потребностей .

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.