Функция nvl () в php файле - PullRequest
       38

Функция nvl () в php файле

1 голос
/ 20 февраля 2009

Я просто просматриваю php-файл и наткнулся на следующий код:

switch (nvl($mode))
{
  case "add" :
     print_add_category_form(nvl($id, 0));
     break;

  case "edit" :
     print_edit_category_form($id);
     break;
}

Что делает функция nvl () ??

Ответы [ 4 ]

6 голосов
/ 20 февраля 2009

Вероятно, это будет похоже на функцию Oracle NVL, хотя, насколько я знаю, ожидается два параметра.

Я искал Google Code Search с PHP в качестве языка, и есть несколько примеров, таких как:

/**
* If $var is undefined, return $default, otherwise return $var.
*/
function nvl(&$var, $default = "")
{
    return isset($var) ? $var
                       : $default;
}

Думаю, однако, вам лучше было бы самостоятельно найти объявление в коде, как подсказывает ceejayoz.

5 голосов
/ 03 марта 2016

Или, если у вас есть доступ к PHP 7.0.0, попробуйте оператор объединения нулей"??"

Таким образом, вместо (синтаксис Oracle):

nvl($id, 0)

Вы можете использовать:

$id ?? 0
4 голосов
/ 20 февраля 2009

Кто знает? Это не стандартная функция PHP. Посмотрите в другом месте кода, где определена эта функция.

1 голос
/ 25 сентября 2011

См. Ссылку ниже для определения nvl (), используемого Oracle. У PHP нет ни одного. Таким образом, разработчик вашего примера кода мог реализовать подобную функцию.

http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions105.htm

В моих кодах я использую собственную реализацию, которая ближе к тому, что определил Oracle:

Кстати: «nvl» просто означает «[n] ull [v] a [l] ue»

// Function: nvl
//
// Replaces null or '' string.
//
// PARAMETERS:
//   $val     - Value to be returned normally.
//   $replace - Value to be returned if $val is null or ''.
//
// RETURNS:
//   See parameters.

function nvl($val, $replace)
{
    if( is_null($val) || $val === '' )  return $replace;
    else                                return $val;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...