функция — передача необязательных параметров в переполнение стека

Я понимаю, что могу настроить функцию PHP для принятия необязательных параметров.

Однако, если я пишу свою функцию как обертку для другой функции, которая сама принимает необязательные параметры, я не знаю, есть ли удобный способ сделать это.

Я рассматриваю написание неуклюжий код, как:

function doBindValue__($stmtEE, $placeholder, $value, $type = NULL)
{
/**
* Now IN FACT the interface to bindValue is specified to use PDO::PARAM_STR as the default
*  so I could use it as MY default above,
*  but that feels like cluncky assuming-too-much
*  since I don't own that specification and it could change later ( I suppose ).
*/

$GLOBALS[ "PDOFailedOperation" ] = "bindValue";

if (is_null($type))
{
$stmtEE->bindValue($placeholder, $value);
}
else
{
$stmtEE->bindValue($placeholder, $value, $type);
}
}

Если бы я знал, что передача значения NULL в качестве параметра была бы ТОЛЬКО ОДНОЙ и той же, что и передача отсутствующего параметра, это было бы достаточно просто, но я нигде не нашел этого записанного.

1

Решение

Ты можешь использовать func_get_args а также call_user_func_array PHP функции.

Для получения справки о функциях см .:

http://php.net/manual/en/function.func-get-args.php

http://php.net/manual/en/function.call-user-func-array.php

Ваш фрагмент может быть переписан с использованием этих функций следующим образом:

function doBindValue__($stmtEE, $placeholder, $value, $type = NULL)
{

$GLOBALS[ "PDOFailedOperation" ] = "bindValue";

return call_user_func_array(array($stmtEE, 'bindValue'), func_get_args());
}

Для PHP 5.3 или выше

0

Другие решения

Мне кажется, что если я гарантирую, что версия PHP, которую я использую, будет 5.6 или выше, я могу сделать это очень просто, используя новый токен ….

Поскольку я в состоянии форсировать это обновление на наших серверах, думаю, я пойду по этому пути.

0

По вопросам рекламы [email protected]