<MyRusakov.ru />

PHP и MySQL с Нуля до Гуру 2.0

PHP и MySQL с Нуля до Гуру 2.0

Данный курс научит Вас программировать на самом популярном Web-языке в мире - PHP. Курс состоит из 11 разделов, в которых с нуля рассказывается и показывается процесс написания различных скриптов на PHP.

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

Почти к каждому уроку идут упражнения.

Просмотрев данный курс, Вы сможете создавать абсолютно любые PHP-сайты любой сложности.

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

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

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

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

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

Каким движком Вы предпочитаете пользоваться?

Что нового в PHP7.1: улучшения обработки $this.

Что нового в PHP7.1: улучшения обработки $this.

Всем привет! В этой статье мы рассмотрим, какие улучшения коснулись обработки $this в PHP 7.1.

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

Давайте сразу рассмотрим пример:

class Calculator {
  protected $result = 0;

  public function getResult() {
   return $this->result;
  }

  public function add($number) {
   $result = 'this';
   $$result = $this->result + $number;
   // то же самое, что $this = $this->result + $number;
   var_dump($this);
  }
}

$calculator = new Calculator;
$calculator->add(2);
echo $calculator->getResult();

Здесь мы в методе add() переменной $result присваиваем значение равное строке this. Дальше мы используем два знака доллара для того, чтобы создать динамически имя переменной. Т.е. $$result это то же самое, что $this, т.к. имя для переменной берется из значения указанной после двух знаков доллара переменной. Подробнее про это вы можете почитать на официальном сайте в разделе variable variables.

Если мы теперь попытаемся с помощью var_dump() посмотреть, чему равно $this, то увидим, что оно равно не объекту, как мы могли ожидать, а int(2) 0. Это произошло из-за того, что мы перезаписали $this на значение $this->result + $number.

Но это произойдет только в PHP 7.0. В PHP 7.1 мы получим Fatal Error, говорящую нам о том, что невозможно перезаписать $this.

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

А на этом сегодня все. Спасибо за внимание!

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

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

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

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

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

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

  1. Кнопка:

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

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

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

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

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

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