Что на самом деле означает «одноразовый объект» или, скорее, «простой одноразовый объект» в PHP, особенно в отношении концепции «Анонимные классы»? [Дубликат]

вы можете использовать всегда:

'C:/mydir'

это работает как в linux, так и в окнах. Другая возможность -

'C:\\mydir'

, если у вас есть проблемы с некоторыми именами, вы также можете попробовать сырые строковые литералы:

r'C:\mydir'

, однако лучше всего использовать функции модуля os.path которые всегда выбирают правильную конфигурацию для вашей ОС:

os.path.join(mydir, myfile)
9
задан Fabian Schmengler 25 July 2015 в 21:18
поделиться

4 ответа

Вы можете найти информацию, которую вы ищете здесь , где представлен RFC.

Ключевыми моментами раздела Use cases являются следующие:

  • Скучные тесты становятся легкими, как пирог. Создавайте «на лету» реализации интерфейсов, избегая использования сложных фальсифицированных API.
  • Сохраняйте использование этих классов вне области, в которой они определены в
  • Избегайте попадания автозагрузчика для тривиальных реализаций
15
ответ дан marcosh 25 August 2018 в 07:03
поделиться

Анонимные классы не отличаются от обычных классов в PHP, за исключением того, что их нужно создавать и создавать одновременно. Это означает, что они могут быть расширены из других классов, могут использовать интерфейсы и т. д.

Если вы подумайте, что вам нужен очень простой класс и никогда больше не используйте его в другом месте, он вам подходит. Еще одна причина может заключаться в том, что вам нужен простой класс (с несколькими простыми методами), и вы не хотите тратить время на документацию, чтобы создать один из них для достижения своей задачи.

0
ответ дан Mert Metin 25 August 2018 в 07:03
поделиться

Хорошим случаем, который я могу предоставить, является предоставление контекстно-зависимого слушателя, чтобы использовать его только один раз или адаптер для внешнего прослушивателя без определения пользовательского класса. Вот пример:

$this-apiCaller->call('api_name', $parameters, new class($businessListener) implements ApiListenerInterface 
{ 
    private $listener;

    public function __construct($originalListener)
    {
        $this->listener = $originalListener;
    }

    public function onSuccess($result)
    {
        $this->listener->addLog(new SuccessRecord($result));
    }

    public function onFailure($error)
    {
        $this->listener->addLog(new ErrorRecord($error));
    }
});
0
ответ дан ryabenko-pro 25 August 2018 в 07:03
поделиться

Анонимные классы - это классы, которые определены без имени. В PHP 7 мы можем определить анонимный класс, используя ключевое слово «новый класс». Этот класс может заменить полное определение класса.

В PHP 7 появилась новая функция класса, называемая анонимным классом, которая позволяет нам создавать объекты без необходимости их имени.

https://nexladder.com/php7-tutorial/php7-anonymous-classes

0
ответ дан viju 25 August 2018 в 07:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: