Поддерживает ли функция поддержки php, например, как поддерживает c ++?
Вы, скорее всего, ссылаетесь на область класса / переменной. В php у вас есть:
Но не friend
видимость. protected
хотя используется, когда члены объекта должны быть видимыми только для других расширяющихся / наследующих объектов.
Больше информации:
Нет. Вы должны объявить это публичным.
PHP не поддерживает никаких дружественных деклараций. Можно имитировать это с помощью методов PHP5 __get и __set и проверять обратную трассировку только для разрешенных классов друзей, хотя код для этого является довольно неуклюжим.
Вот пример кода и обсуждение темы на сайте PHP:
class HasFriends {private $ __ friends = array ('MyFriend', 'OtherFriend');
public function __get($key) { $trace = debug_backtrace(); if(isset($trace[1]['class']) && in_array($trace[1]['class'], $this->__friends)) { return $this->$key; } // normal __get() code 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 here trigger_error('Cannot access private property ' . __CLASS__ . '::$' . $key, E_USER_ERROR); }
}