Вы не можете вызвать echo
как функцию, потому что это на самом деле не функция, а скорее языковая конструкция в PHP.
Чтобы эффективно вызвать echo
, вы можете создать метод-обертку, такой как:
function call_echo($str){
echo $str;
}
На тему вызова функций через строки я бы использовал call_user_func
mixed call_user_func ( callback $function [, mixed $parameter [, mixed $... ]] )
так что в вашем случае это будет
call_user_func($type, $source);
Я бы выбрал call_user_func
над переменной функцией, потому что она более читабельна и менее запутана. Если бы я читал ваш код, я бы сразу увидел, что вы делаете, если бы вы позвонили call_user_func