Вопрос-Ответ по ООП PHP

Печать RSS
2690

P

Чатланин
0
class Person {
	public $name;
	function __construct($name) {
		$this->name = $name;
	}
}

interface Module {
	function execute();
}

class FtpModule implements Module {
	function setHost($host) {
		print("
			FtpModule::setHost():$host\n");
	}

function execute() {}
}
Помогите пжл разобраться с кодом.
Класс или методы небыли объявлены статическими, но методы можно вызывать через :: и никаких ошибок, интересно знать почему? При этом после вызова метода FtpModule::setHost():$host, идет параметр $host через двоеточие, если это установка параметра, тогда почему через двоеточие, а не в скобках как положено?
Изменил: php (02.05.2019 / 18:11)

Господин ПЖ
0
Там никакого вызова функции нет, ты просто печатаешь строку
P

Чатланин
0
Вантуз-мен, в чем тогда смысл кода интересно... кстати на экран все равно ничего не выводится.

Господин ПЖ
0
php, не в курсе какой смысл заложили в сие творение
(new FtpModule())->setHost('visavi.net');
P

Чатланин
0
J

Землянин
0
class Person { public $name; function __construct($name) { $this->name = $name; }}interface Module { function execute();}class FtpModule implements Module { function setHost($host) { print(" FtpModule::setHost():$host\n"); }function execute() {}}
Помогите пжл разобраться с кодом.
Класс или методы небыли объявлены статическими, но методы можно вызывать через :: и никаких ошибок, интересно знать почему? При этом после вызова метода FtpModule::setHost():$host, идет параметр $host через двоеточие, если это установка параметра, тогда почему через двоеточие, а не в скобках как положено?
@php (Вчера / 18:09)

Дело не в том что они не статические, ты можешь обращаться к свойствам метода или методу из того же метода ::, либо вместо метода обращаться через self:: , это же ооп бро, парадигмы и все такое))
P

Чатланин
0
JiGaN, из невнимательности последний пост написал. Под вечер башка уже не хотела соображать)
Изменил: php (03.05.2019 / 20:41)
P

Чатланин
0
Этот код:
class A {
public static function getInstance()
    {
        if (!(self::$instance instanceof self)) {
            self::$instance = new self();
        }
        return self::$instance;
    }
}
будет эквивалентен этому:
class A {
public static function getInstance()
    {
        if (!(self::$instance instanceof self)) {
            return new static();
        }
    }
}
??
P

Чатланин
0
Добрый вечер, как-то открыл документацию "ларавэл" и, нашел там запись вроде этой:
Route::get('example', function() {
return view('example')->with('name', 'laravel');
});
Что она делает я знаю, не понятен механизм действия записи после return; view - это функция же, а не объект; зачем там стрелка после нее, куда она обращается, не подскажите?

Голубые штаны
0
php, view() в данном случае это хелпер, который дублирует действие объекта View() и, собственно, его и возвращает, поэтому можете по цепочке продолжить действия с этим хелпером как с объектом View().

В Laravel полно таких хелперов: trans(), auth() и пр. и пр....
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск