2014-12-19 2 views
-1

Я хотел бы знать, если есть возможность сделать условие для параметров в определении функции, например:Условные параметры в функции определения PHP

function attachFile 
(
    $function_method = "standard", // just default value.. 
    if ($function_method == "standard") 
    { 
    $next_parameter_for_classic_method, 
    // ... 
    } 
    else if ($function_method == "other_method") 
    { 
    $next_parameter_for_other_method, 
    // ... 
    } 
) 
{ 
    // work... 
} 

Было бы значительно упростить работу с функциями (I думаю, по крайней мере). Заранее спасибо.

+0

Вы можете сделать свое условие сразу после заголовка функции, и если что-то недействительно, вы можете вернуть false! – Rizier123

+0

Используйте массив для параметра. – Wolf

+0

@Downvoter оставить комментарий, спасибо другим –

ответ

1

Вы не можете передать по умолчанию, но в противном случае вы не можете передать в условном операторе ... Вы можете передать массив в качестве второго параметра, чтобы сделать его проще, если желательно, хотя ..

function attachFile($function_method = "standard", $options = array()) 
{ 
    if ($function_method == "standard") 
    { 
    $next_parameter_for_classic_method = $options['next_parameter_for_classic_method ']; 
    } 
    else if ($function_method == "other_method") 
    { 
    $next_parameter_for_other_method = $options['next_parameter_for_other_method']; 
    } 
} 

Пример синтаксиса:

attachFile('other_method', array('next_parameter_for_other_method'=>'someParameterValue')); 
+0

Большое спасибо! Это именно то, что мне нужно. –

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