Разрешение области: объекты с вызовами закрытия

0

Сегодня я получил следующую ошибку php:

Неустранимая ошибка: использование $this если не в контексте объекта.

Довольно прямо. Я пытался получить доступ к объекту, не входящему в сферу действия.

Пример кода:

class foo{
function bar(){ 
    array_walk($this->array, 
            function (&$v, $k) {
                if('something'){
                    # code goes here...
                }else{
                    $this->erorr_message = 'Fail'; // breaks in v5.3
                }
            }
        );
     if($this->error_message==''){
             //do something
         }
  }

}

Я узнал, что это не работает в 5.3, но это работает в 5.5. Можете ли вы показать мне обновление PHP, которое внесло это изменение или объяснить мне, почему область не всегда позволяла это быть возможным? Я думаю, я понимаю, что просто не то, почему.

Теги:
scope

1 ответ

0
Лучший ответ

Его право на странице man для анонимных функций php:

Changelog

Version     Description
5.4.0   $this can be used in anonymous functions.
5.3.0   Anonymous functions become available.

http://php.net/manual/en/functions.anonymous.php

Также

PHP 5.4 - "закрытие $ этой поддержки"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню