Необходимо, чтобы параметр получил значение по умолчанию, если вызывающий функцию не передал для него никакого значения. Например, если в функцию вывода таблицы не передается значение ширины таблицы, то по умолчанию для этого параметра может быть установлено значение, равное 1.
Присвойте параметру значение по умолчанию в прототипе функции:
function wrap_html_tag($string , $tag = ' b ') {
return " <$tag>$string</$tag> ";
}
Пример в разделе «Решение» устанавливает для полужирного текста значение по умолчанию, равное b. Например:
$string = ' I am some HTML ';
wrap_html_tag($string);
возвращает:
<b>I am some HTML</b>
Следующий пример:
wrap_html_tag($string , ' i ');
возвращает:
<i>I am some HTML</i>
Определяя значения по умолчанию, необходимо помнить две важные вещи. Во-первых, все параметры со значениями по умолчанию должны следовать за параметрами без значений по умолчанию. В противном случае PHP не сможет определить, какие параметры опущены и должны принять значения по умолчанию, а какие аргументы заменяют значение по умолчанию. Поэтому функция wrap_html_tag() не может быть определена следующим образом:
function wrap_html_tag($tag = ' i ' , $string)
Если так сделать и передать функции wrap_html_tag() только один аргумент, то PHP присвоит это значение переменной $tag и выдаст предупреждение, выражая недовольство пропуском второго аргумента. Во-вторых, присвоенное значение должно быть константой: строкой или числом. Оно не может быть переменной. В качестве примера опять возьмем функцию wrap_html_tag(). Так делать нельзя:
$my_favorite_html_tag = ' i ';
function wrap_html_tag($string , $tag = $my_favorite_html_tag) {
...
}
Если необходимо, чтобы по умолчанию не было присвоено ничего, то единственный способ это сделать состоит в том, чтобы присвоить параметру пустую строку:
function wrap_html_tag($string , $tag = ' ') {
if (empty($tag)) return $string;
return " <$tag>$string</$tag> ";
}
Эта функция возвращает оригинальную строку, если для переменной
$tag не было передано никакого значения. А если был передан тег
(не пустой), то она возвратит строку, находящуюся внутри тегов.
В зависимости от обстоятельств другой альтернативой значения по
умолчанию для переменной $tag являются значения 0 или NULL. В функции wrap_html_tag() пустое значение тега нам ни к чему. Однако в некоторых случаях пустая строка может быть вполне допустима. Например, функция join() часто вызывается с пустой строкой после вызова
функции file(), чтобы поместить файл в строку. Кроме того, как показывает следующий код, можно использовать сообщение по умолчанию, если не передано никаких аргументов, и пустое сообщение, если
передана пустая строка:
function pc_log_db_error($message = NULL) {
if (is_null($message)) {
$message = ' Couldn't connect to DB ';
}
error_log(" [DB] [$message] ");
}