Вызов функции аргумента PHP по умолчанию

В php мы можем передавать аргументы по умолчанию в функцию, например

function func_name(arg1,arg2=4,etc...) {

но, насколько я понимаю, мы не можем передать вызов функции, так что это незаконно:

function func2_name(arg1,arg2=time(),etc...) {

поэтому, когда я хочу получить значение функции (, представьте себе, как функция времени, что значение не может быть известно до выполнения )мне нужно проделать что-то вроде грязной работы, например так:

function func3_name(arg1,arg2=null,etc...) {
    if(arg2==null) arg2 = time();

Мне было интересно, знает ли кто-нибудь лучший способ, более чистый способ передать значения вызова функции в качестве аргументов по умолчанию в php? Спасибо.

Также есть ли какая-то фундаментальная причина в дизайне языка php, по которой он не допускает вызовы функций в качестве аргументов по умолчанию (, например, делает ли он что-то особенное в предварительной обработке? )или это может стать функцией в будущих версиях?

12
задан hackartist 11 June 2012 в 19:41
поделиться