Override internal PHP functions
Переписать функцию PHP без специальных расширений и отладочных инструментов
Jul 28, 2021
Возможно ли? Спйолер: Да.
Но есть нюанс. Сначала нужно функцию, которую хочется переопределить стереть. А сделать это можно через php.ini файл, вписав функцию в директиву:
disable_functions =
Для примера возьмем функцию date и сделаем следующее:
php.inidisable_functions = dateauto_prepend_file = path/to/my_defined_functions.php
Пишем что нить типа:
<?php declare(strict_types=1);/**
@param string $s
@return string
*/
function date(string $s): string {
return ‘А не все ли равно какая дата?’;
}echo date(‘d.m.Y’);
Ну вот и все. Более не существует встроенной функции date. Так можно поступить со множеством функций.
Для чего? Подхачить что-то на глобальном уровне, нахуевертить свою обертку над чем-либо… В общем инструмент есть, а применение всегда найдется.