Простой класс с использованием php - PullRequest
1 голос
/ 07 октября 2010

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

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

Заранее спасибо.

О, я тоже забыл, как расширять. Я говорю о родителе и ребенке что-то или что .. Еще раз спасибо.

Ответы [ 4 ]

6 голосов
/ 07 октября 2010
2 голосов
/ 07 октября 2010
2 голосов
/ 07 октября 2010

Все, что вам нужно: http://php.net/manual/en/language.oop5.php!

1 голос
/ 08 октября 2010

Определенно согласен со всеми остальными. Вам следует ознакомиться с 550 миллионами онлайн-руководств по PHP, включая ссылки, приведенные в других ответах. А пока вы получаете это:

class one {
   private $name;
   const ONE = 'ONE';

   // php magic function.  allocate memory for object upon instantiation
   // called with new
   public function __construct($name = null) {
      $this->init($name);
   }

   protected function name() {
      return $this->name;
   }

   // php magic function called when object variable is accessed in a string context
   public function __toString() {
      return __CLASS__ . ': ' . $this->name;
   }

   // static functions can be called without instantiation
   public static function con() {
      echo self::ONE;
   }

   private function init($name) {
      $this->name = $name;
   }
}


// two cannot overwrite method init() -- it is private.
// two has no access to $name.  It is private in one and not visible to two
class two extends one {
   // protected methods can be overwritten
   protected function name() {
      return parent::name();
   }
   // so can public methods
   public function __toString() {
      return __CLASS__ . ': ' . $this->name();
   }
}

// static method call; no instantiation needed
echo one::con() . "\n"; // ONE
// public methods can be called by child class
echo two::con() . "\n"; // ONE
$one = new one('uno');
echo "$one\n"; // one: uno
$two = new two('dos');
echo "$two\n"; // two: dos
$one->name(); // bork! No public access to this method
...