передача параметров функ

vrazbros

Новичок
передача параметров функ

столкнулся с кодом

function mymenu_hello($name = NULL) {
if (!isset($name)) {
$name = "good looking!";
}

не могу понять зачем $name = NULL в качестве параметра? а не function mymenu_hello($name)
первое что приходит в голову обнуляем аргументы которые получили, но чувствую это не то.
кто поможет ? unction mymenu_hello($name = NULL) зачем так писать ?
 

Zetruger

ivan.chistyakov.name
мануал -> Function arguments -> Default argument values

это установка значения по умолчанию, что-бы иметь возможность вызова

mymenu_hello(); // т.е. без указания параметра


if (is_null($name)) {
$name = "good looking!";
}

isset ничего не даст
надо использовать is_null
 

Sokil.Dmytro

Новичок
это по умолчанию передается в функцию если ты вызвал ее как mymenu_hello()

опоздал.
 

vrazbros

Новичок
хорошо $name будет по умолчанию NULL. Но ведь если я вызову функцию без параметров $name будет и так пустой ?
 

kvf77

Red Devil
vrazbros
я не понял - слабо запустить фнкцию без аргументов и посмотреть что будет? к чему эти вопросы-то?
 

Фанат

oncle terrible
Команда форума
vrazbros
я полагаю, что приведенная конструкция не имеет смысла.
о замысле авторов судить сложно, но, возможно, конструкцию можно заменить кодом
mymenu_hello($name = "good looking!")
 

WP

^_^
:D

Конструкция $name = NULL как раз таки имеет смысл, она определяет значение переменной если аргумент не передан. А если просто как $name указать то будет Warning.

-~{}~ 31.07.07 19:37:

PHP:
function foo($test) {}
foo();
 
WP
***** имел ввиду всю конструкцию в целом, в том числе is_null($name) ... $name = '.... В действительности проще будет сразу в объявлении задавать значение переменной по-умолчанию, другое дело если оно не постоянное.
 

WP

^_^
mishco
Дык как foo($name = ...) можно записать лишь статическое значение.
 
WP
Дык я про это и говорю, раз можно значит можно, когда это нужно. Приведенный топик-стартером код иллюстрирует именно такую ситуацию.

-~{}~ 31.07.07 21:02:

Wicked
a(null); <---- сами виноваты :p
 

Фанат

oncle terrible
Команда форума
Wicked
мля.
давай ты мне не будешь пересказывать букварь?
а предложишь другое поведение конструкции
function mymenu_hello($name = NULL) {
if (!isset($name)) {
$name = "good looking!";
}

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

Wicked

Новичок
mishco
более логичным тут был бы вызов a($someVarThatCanBeNull); И они предусмотрели этот случай тже, так что не надо им приписывать вину.

*****
ну замысел я таки понял, и не вижу необходимости предлагать как-нибудь изменить этот код.
 
Сверху