2013-08-21 6 views
-2

У меня вопрос о нулевых переменных по умолчанию в php-функциях внутри класса.Нулевые переменные в PHP-функциях

public function myFunction($var1, $var2, $var3 = NULL, $var4 = NULL){ 
//My Class Function 
} 

Думайте, что я буду использовать myFunction в скрипте.

, если я хочу, чтобы пользователь $ var1, $ var2, $ var3 я буду называть функцию как то

$C = New myClass(); 
$C->myFunction($var1,$var2,$var3); 

, если я не использую $ var4, NULL является assaigned до $ var4.

, если я хочу использовать функцию как этот

$C = New myClass(); 
$C->myFunction($var1,$var2,$var4); 

$ Var4 и $ var3 смешаем. Как я могу использовать его правильно?

+0

Я думаю, что часть проблемы заключается в том, что вы используете одни и те же имена переменных как для формальных и фактических параметров. Это может путать вещи. На самом деле это разные переменные! Поэтому, если вы используете разные имена в вызывающей процедуре, скажите «$ this, $ that, $ theother», станет ясно, что порядок вещей не продиктован именами переменных и, следовательно, каким решением. –

ответ

2

Пропустить соответствующий пункт, отправив NULL

$C = New myClass(); 
$C->myFunction($var1,$var2,NULL,$var4); 
2

Вы должны написать $C->myFunction($var1, $var2, null, $var4);$var3, чтобы пропустить и использовать $var4.

1

В этом случае я думаю, что единственный путь, потому что, если вы хотите, чтобы не послать параметр или установить его в нулевое значение, или только последний параметр не может быть посылать и присвоить ему значение NULL:

$C = New myClass(); 
$C->myFunction($var1,$var2,NULL,$var4); 

Документация аргумента функции здесь: http://php.net/manual/en/functions.arguments.php

Смежные вопросы