Nie, to nie jest możliwe, aby to zrobić, jak można się było spodziewać.
Z manual
:
PHP nie obsługuje przeciążania funkcji, ani nie jest możliwe definiowanie lub przedefiniowanie wcześniej zadeklarowanych funkcji.
Można jednak użyć runkit_function_redefine
i jego kuzynów, ale to na pewno nie jest bardzo elegancki ...
Można również użyć create_function
zrobić coś takiego:
<?php
$func = create_function('$a,$b','return $a + $b;');
echo $func(3,5); // 8
$func = create_function('$a,$b','return $a * $b;');
echo $func(3,5); // 15
?>
jak w przypadku Runkit, nie jest zbyt elegancki, ale daje zachowanie, którego szukasz.
Dobrze, dlaczego ta odpowiedź nie jest akceptowana? – Pacerier
Najprawdopodobniej dlatego, że został wysłany prawie cztery lata po pytaniu, a zaakceptowana odpowiedź była prawdopodobnie najbardziej odpowiednia w danym momencie. –
Nadal jestem na ... Zaakceptowany! –