Php суб-методы - PullRequest
       18

Php суб-методы

2 голосов
/ 11 февраля 2011

Я использовал php достаточно, чтобы чувствовать себя с ним довольно комфортно, но недавно я просматривал некоторые фреймворки MVC, чтобы попытаться понять, как они работают, и натолкнулся на синтаксис и структуру данных, которых у меня нет ».t встречалось раньше:

function view($id)   
   {   
       $this->Note->id = $id;   
   }

Что такое раздел -> id этого кода?Это суб-метод, основанный на его родительском методе?Если да, то как мне написать код для создания такой структуры?(т.е. создание структуры с нуля, без использования существующего фреймворка, подобного приведенному выше примеру из cakephp).

Ответы [ 3 ]

2 голосов
/ 11 февраля 2011

Следующий код демонстрирует, как можно прийти к структуре, которую вы описали.

<?php

class Note
{
    public $id = 42;
}

class MyClass
{
    public function __construct() {
        // instance of 'Note' as a property of 'MyClass'
        $this->Note = new Note();
    }

    public function test() {
        printf("The \$id property in our instance of 'Note' is: %d\n",
            $this->Note->id);
    }
}

$mc = new MyClass();
$mc->test();
?>
2 голосов
/ 11 февраля 2011

Note - это свойство $this, а его (текущее) значение - это объект со свойством с именем id, которому присваивается значение $id.
Если бы id был методом объекта Note, строка выглядела бы как $this->Note->id($id);.

1 голос
/ 11 февраля 2011

Еще один способ думать о конструкции - рассмотреть

 $this->Note->id = $id;

, аналогичный

 $this["Note"]["id"] = $id;

, который на самом деле был бы эквивалентен, если бы оба объекта ($ this и подобъектное примечание) основывались наArrayAccess.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...