2016-10-06 43 views
0

ここでのように、異なる引数型で呼び出すことができるメソッドcolumnを作成する必要があります。異なる引数型の関数をPHPで呼び出す


..私はちょうど機能が行うJavaのように上書きすることを、明確に呼び出すことができる、と私は引数を一つずつ処理するために func_get_args()を使用してみてきたしたいが、それ `sが悪化思える
  ->column('herald','style') 
     ->column('herald','style','styleText') 
     ->column('herald',['kind','style']) 
     ->column('herald',['kind','style'],['kindText','styleText']) 
     ->column('item',['kind','style'],false) 
     ->column('item',['kind','style'],['kindText','styleText'],false) 
     ->column('herald_style','style',false) 
     ->column('herald_style','style','styleText',false) 

それには何らかの方法がありますか?あなたは

+0

はあなたがデフォルト値をasignも使用することができますfunction coloumn($ a = null、&b = null、$ c = null、$ d = null){} –

+0

パラメータ - ['kind'、 'style']の意味は? –

+1

私は彼がパラメータが配列かもしれないと思うと思います。@ SanjayKumarNS –

答えて

0

を意味する場合は[「種類」、「スタイル」]配列として、これを試してみてください。

<?php 
function column() 
{ 
    $numargs = func_num_args(); 
    $arg_list = func_get_args(); 
    for ($i = 0; $i < $numargs; $i++) { 
     echo "Argument $i is: " . (!is_array($arg_list[$i]) ? $arg_list[$i]: ' an array '). "<br />"; 
    } 
    echo "<br /><br />"; 
} 

column('herald','style'); 
column('herald','style'); 
column('herald','style','styleText'); 
column('herald',array('kind','style')); 
column('herald',array('kind','style'),array('kindText','styleText')); 
column('item',array('kind','style'),false); 
column('item',array('kind','style'),array('kindText','styleText'),false); 
column('herald_style','style',false); 
column('herald_style','style','styleText',false); 

?> 
1

は、関数の引数の可変数を受け入れますか?

PHP 5.6+を使用する場合は、splat演算子...を使用して、送信された引数を配列に配置できます。

function column(...$args) { 

    // this is how many arguments were submitted 
    $number_of_arguments = count($args); 

    // iterate through them if you want... 
    foreach($args as $arg) { 

     // ...and process the arguments one by one 
     do_something_with($arg); 
    } 
} 

PHPの以前のバージョンを使用している場合、サンジェイ・クマーN Sの答えは、それを行います13

http://php.net/manual/en/functions.arguments.php上の例を参照してください。

関連する問題