Computer >> Máy Tính >  >> Lập trình >> PHP

PHP tương đương với bạn bè hoặc nội bộ

PHP không hỗ trợ khai báo kiểu bạn bè. Nó có thể được mô phỏng trong PHP5 bằng cách sử dụng các phương thức __get và __set và bằng cách kiểm tra dấu vết cho các lớp bạn bè được phép. Nhưng kiểu thực hành mã hóa này được coi là vụng về -

class sample_friend {
   private $__friends = array('My_Friend', 'Other_Friend');
   public function __get($key)    {
      $trace = debug_backtrace();
      if(isset($trace[1]['class']) && in_array($trace[1]['class'], $this->__friends)) {
         return $this->$key;
      }
      // __get() code goes here
      trigger_error('Cannot access private property ' . __CLASS__ . '::$' . $key, E_USER_ERROR);
   }
   public function __set($key, $value) {
      $trace = debug_backtrace();
      if(isset($trace[1]['class']) && in_array($trace[1]['class'], $this->__friends)) {
         return $this->$key = $value;
      }
      // normal __set() code goes here
      trigger_error('Cannot access private property ' . __CLASS__ . '::$' . $key, E_USER_ERROR);
   }
}