вызвать функцию изнутри функции php oop - PullRequest
0 голосов
/ 12 октября 2011

Интересно, возможно ли это, хотя я вполне уверен, что, возможно, есть лучший подход к этому. У меня есть такая структура скрипта:

class Mother {
    public function __construct() {
        // script here
    }

    public function writer() {
        if() {
            // if true
        } else {
            // call function hello
        }
    }

    public function hello() {
        echo "Hello there.";
    }
}

Как я могу вызвать hello () от writer ()? Спасибо.

Ответы [ 3 ]

3 голосов
/ 12 октября 2011

Вроде так

public function writer() {
    $this->hello();
}

$this является зарезервированной переменной для классов, любой экземпляр которого создается (вызывается через new myClass), имеет доступ к $this, однако, если вы используете статический класс, вам нужно определить эту функцию как статический и используйте подход static::myFunction, например:

class exampleClass {
    public static function exampleFunc() {
        static::hello();
    }
    public static function hello() {
        echo "Hello!";
    }
}
exampleClass::exampleFunc();
0 голосов
/ 12 октября 2011

на моей установке PHP 5.3.4

public function hello() { }

кажется доступным из другого метода экземпляра двумя способами

$this->hello()
self::hello()

Очевидно,

$this

ссылка на экземпляр не будет доступна при вызове открытого метода как метода класса

0 голосов
/ 12 октября 2011
// call function hello
$this->hello();

Кроме того, другие ваши функции синтаксически неверны.Обратите внимание на круглые скобки.

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