Подавить или перехватить () неверный вызов функции - PHP - PullRequest
1 голос
/ 23 апреля 2009

Имею ряд функций, которые я вызываю динамически, примерно так:

$function = 'someFunction';
$x = $function();

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

function someFunction( $in_param1 ) {
  return "SUCCESS";
}

$function = 'someFunction';
// this next line does not work
$x = $function() or die("error");

Как мне справиться с такой ошибкой?

Спасибо -

Ответы [ 4 ]

5 голосов
/ 23 апреля 2009

Вы можете поймать это, используя функцию set_error_handler :

function handle_errors( $errno, $errstr )
{
    die( "Your error will be caught here" );
}

set_error_handler( "handle_errors" );

$function = 'someFunction';
$x = $function();
3 голосов
/ 23 апреля 2009

Подавляет? Да. Ловить? См. Ответ don.neufeld .

$x = @$function();

Согласно этой странице , вы можете включить определенную настройку INI, чтобы вы могли читать ошибки, подавленные таким образом.

2 голосов
/ 23 апреля 2009

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

function someFunction( $in_param1=null ) {
  return "SUCCESS";
}
1 голос
/ 23 апреля 2009

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

<?php
function foo($a, $b, $c) {}

$func = new ReflectionFunction('foo');
echo $func->getNumberOfParameters();

Это выводит "3".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...