2016-07-31 3 views
-1

Пример 3 на this page:PHP Объявление класса объяснение необходимости

  1. Что Тестов $ других в function baz(Test $other), я получил, что $ другого аргумент функции, однако, почему испытания и пространство перед ним?
  2. В чем смысл прохождения «теста» и «других» аргументов при запуске класса, они что-то делают?
  3. Какое большое дело в вызове частного метода в этом примере?

    class Test { 
        private $foo; 
    
        public function __construct($foo) { 
         $this->foo = $foo; 
        } 
    
        private function bar() { 
         echo 'Accessed the private method.'; 
        } 
    
        public function baz(Test $other) { 
         // We can change the private property: 
         $other->foo = 'hello'; 
         var_dump($other->foo); 
    
         // We can also call the private method: 
         $other->bar(); 
        } 
    }  
    
    $test = new Test('test'); 
    
    $test->baz(new Test('other')); 
    
+0

Добро пожаловать в переполнение стека! Я отредактировал ваш вопрос, насколько я мог догадаться о вашей проблеме. Однако добавьте объяснение кода и описания, чтобы увидеть больше людей со знанием предмета. Измените конкретное сообщение об ошибке, с которым вы сталкиваетесь, в случае необходимости определить конкретную проблему. Удачи! – manetsus

ответ

0
  1. Это параметр класса напечатал Test
  2. Это внутренняя строка, для именования конфигурации, инициализации и т.д.
  3. Вы не хотите, чтобы выставить полный API для всех объектов. Он загромождает видимость, и некоторые методы не предназначены для просмотра другими - например, когда вы хотите очистить вещи, управлять ресурсами и так далее.

Это голый минимальный пример без функции и, следовательно, не лучший учебный ресурс.

+0

1. хорошо, так что $ other - это просто аргумент функции baz(), можете ли вы объяснить, какое именно имя класса было отложено до того, как оно будет делать ручную ссылку на такое объявление? 2. Я вижу его аргумент для функции _construct, но я не вижу, чтобы строки 'test' и' other' отображались в любом месте самого класса. 3. В этом конкретном примере, почему они подчеркивают частный или общедоступный метод, я имею в виду, что это не ключевой момент этого примера, не так ли? –

+0

Я бы сказал, что документация по PHP не является лучшим учебным ресурсом. –

Смежные вопросы