Мне нужно вызвать класс, который будет выполнять действия, но я знаю, что я не буду называть методы. Это приложение PHP. Кто-нибудь когда-либо делал следующее:
require('class.Monkeys.php'); new Monkeys(); //note I didn't assign it to a variable
Да, это совершенно верно. Однако это, возможно, плохая форма, потому что золотое правило таково:
Конструкторы не должны выполнять фактическую работу.
Конструктор должен создать объект так, чтобы он был действительным и в «состоянии готовности». Конструктор не должен самостоятельно начинать работу. Таким образом, это было бы разумнее:
$monkeys = new Monkeys; $monkeys->goWild();
Или, если вы предпочитаете и используете достаточно продвинутую версию PHP:
(new Monkeys)->goWild();
Хорошо, позвольте сказать, что у нас есть имя класса под названием Monkeys .
Файл class.Monkeys.php
class Monkeys { function __construct() { $this->doSomething() } public function doSomething(){ echo "new Monkeys()->doSomething() was called"; } public function anotherMethod(){ echo "new Monkeys()->anotherMethod() was called"; } }
Теперь вы можете создать экземпляр класса во время выполнения, не сохраняя его в переменной.
require('class.Monkeys.php'); // you can just instantiate it and the constructur will be called automatically (new Monkeys()); // or you can instantiate it and call other methods (new Monkeys())->anotherMethod();
Я не уверен, что сборщик мусора удалит созданные классы или нет, но я предполагаю, что, поскольку эти классы не сохраняются в переменной, это не будет сохранено где-то в памяти, и это будет идеально.