php ооп доступ к св-вами объекта не через get и set'еры?

phpup

Новичок
php ооп доступ к св-вами объекта не через get и set'еры?

Код index.php
Родительский класс:
PHP:
class FSobject { // folder or file
//properties
   public $name;
   public $size;
   public $date_create;
  /* ..... и другие св-ва объекта */
Дочерний класс:
PHP:
class FSobject_Collection extends FSobject implements Iterator  { // collection of folder or file

private $collection = array();
еще дочерний класс :
PHP:
class File_Manager extends FSobject_Collection{
.....
$this->link
........
Код index.php
PHP:
      echo "<table border=1>";
      foreach($obj as $k1 => $FSobject)
      {echo "<tr>";
         foreach($FSobject as $key => $value)
         {
          echo "<td> $value </td>";
         }
      echo "</tr>";
      }
Как в index.php вывести только например св-ва $this-name и $this-size, а не все полностью.
Чо-то запутался, ткните носом, пожалуйста :)

p.s: get'еры и set'еры не нужны.
 

Духовность™

Продвинутый новичок
так не делают. свойства объекта должны быть private/protected

всегда нужны, когда есть строго определенное количество свойств объекта. Не хотите их делать реальными - делайте виртуальными, через __call. В дальнейшем это избавит от кучи исправлений кода, когда нужно будет делать ленивую инициализацию или выполнять какую-то логику при set или get.

Как в index.php вывести только например св-ва $this-name и $this-size, а не все полностью
не использовать foreach?
 

Духовность™

Продвинутый новичок
через магический метод языка __call, который вызывается в случае, если вызывается метод, не определенный в классе. Но в данном случае __call не нужен. В данном случае class FSobject содержит фиксированный набор свойств, которые являются частью объекта. Они должны быть сокрытыми,а доступ к ним должен осуществляться через методы.
 

phpup

Новичок
Как нужно делать:
PHP:
class FSobject { // folder or file 
//properties 
   private $name; 
   private $size; 
   private $date_create;
Нужно писать три функции: public GetName(), public GetSize(), public GetDate_create() ?
 

Krishna

Продался Java
В дальнейшем это избавит от кучи исправлений кода, когда нужно будет делать ленивую инициализацию или выполнять какую-то логику при set или get.
А так же, позволит перегрузить в наследнике.
 

Здыхлик

Kohaner
Команда форума
А какой смысл в наследовании FSobject_Collection от FSobject, если это коллекция, содержащая массив объектов FSobject?
И почему private, а не protected?
 
Сверху