Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: И почему это работает?
 
 автор: oliss   (31.07.2010 в 19:53)   письмо автору
 
 

<?
error_reporting
(E_ALL);

class 
Class_0 {
  private function 
pr(){
    echo 
'private_функция';
  }
  public static function 
pb(Class_0 $obj){
    
$obj->pr();
  }
}

$obj = new Class_0;
Class_0::pb($obj);

почему выполняется вызов private из static ( а ведь не должно )

  Ответить  
 
 автор: neadekvat   (31.07.2010 в 20:36)   письмо автору
 
   для: oliss   (31.07.2010 в 19:53)
 

Рискну предположить, что это потому, что вы уже создали объект класса, таким образом Class_0::pb($obj); является обращением к методу, который в свою очередь обращается к методу того же класса, и это ключевой момент (то, что метод статический роли уже не играет).
Вот не создавать объект - пошлют нафиг, по идее :)

  Ответить  
 
 автор: sms-send   (01.08.2010 в 02:09)   письмо автору
 
   для: oliss   (31.07.2010 в 19:53)
 

> почему выполняется вызов private из static ( а ведь не должно )

А где такое написано?
http://ru.php.net/manual/en/language.oop5.visibility.php

Members declared as private may only be accessed by the class that defines the member.
Ни слова о static-членах.

И принцип инкапсуляции такое поведение совсем не нарушает. Все методы класса (включая static-методы) являются частью этого класса, а значит "имеют представление" о его внутренней структуре (о наличии и назначении private/protected членов).

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования