Задать закрытый атрибут, который является массивом в классе PHP, не удается - PullRequest
0 голосов
/ 05 августа 2009

У меня проблема при установке закрытого атрибута в классе PHP, однако вызывается мой метод __set (), когда я выполняю это для атрибута, который представляет собой массив, он выполняет сначала мой метод __get (), который делает ser непригодным для использования : /

$this->person['name'] = 'perro';

просто, не работает, есть идеи на эту тему?

Ответы [ 2 ]

3 голосов
/ 05 августа 2009

Если ваш атрибут частный , его невозможно увидеть (для чтения или записи) из подкласса, если он совершенно нормальный: private означает, что ваш атрибут private к классу, в котором он определен.

В этом разница между частным и защищенным:

  • private = доступно только для одного класса, который объявлен в
  • protected = доступный из любого класса, который "является" классом типа, который вы объявляете (супер или подкласс)
  • публично = доступно каждому

Для получения дополнительной информации об этом в PHP см. Visibilty в руководстве.

Вы, возможно, найдете больше информации в сети об этом, если это необходимо: это одна из основ объектно-ориентированного программирования и верно для других языков (например, C ++)
Поиск ключевых слов, таких как «Видимость», «Инкапсуляция» или «Скрытие информации», например - в связи с ООП / объектно-ориентированным программированием

0 голосов
/ 05 августа 2009

Решите, проблема была в том, что я пытался установить частную переменную в своем классе, и я не понимаю, почему, если я расширяю PHP, я не буду касаться этих атрибутов

, чтобы исправить эту проблему, я просто изменил свои атрибуты с частного на защищенный

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...