Вероломство
Читаю код один, идёт подключение файла functions.php и в нём следующее содержание:
PHP:
<?php function a() { # code } } function b() { # code } } function c() { # code } }Ну и какой смысл такой гениальной проверки?
Drunkenmunky
Например чтобы обеспечить совместимость кода с архивными версиями PHP добавлением самописных аналогов.
Широко применялось при переходе с PHP4 на PHP5.
Сейчас реже.
amberson
Защита от повторных инклюдов файла.
Dimon2x
Что бы не покупать продукты, которые уже есть в холодильнике, нужно в него заглянуть.
Вероломство
require_once ‘functions.php’;
дальше что
— Добавлено —и пользовательская функция не будет определена при наличии функции с таким именем
а вот если без проверки будет то пых нам выбросит мессагу что мы пытаемся переопределить функцию и мы тогда сможем исправить косяк
правильно?
Dimon2x
Cannot redeclare
— Добавлено —
Даже если отключить все ошибки.
— Добавлено —
Пространства имён, могут здесь помочь.
Вероломство
какие пространства имён, у нас файл с функциями подключается
в чём смысл проверки перед объявлением? чтобы если уже есть такое имя у какой-то функции, то не предложить поискать другое и пользователь бы не смог своей функцией воспользоваться, в которую свой нужный ему функционал заложил?
или это потому что мы бредим при создании фреймворка и проверка наличия функции делает его якобы круче, а за лишние строки кода можно потребовать доплату?
https://github.com/laravel/framework/blob/8.x/src/Illuminate/Collections/helpers.php
Satger
Не знаю, в чём там, но у меня была ситуация, когда require_once неудобно.