2016-10-07 7 views
2

を作るために:PHPクラスの配列更新 - 私は、次のコードを持っていると私は私がの1回のコールで複数の値を持つ配列を更新できるように、私はこれを編集することができますどのように思っていた方法より効率的な

$var->updateArray("Value 1", "Value2", "Value 3", and so on....); 

私を現時点では、現在のコードは次のとおりです。私は試していない

public function updateArray() { 
    if (func_num_args() > 0) { 
     $args = func_get_args(); 
     foreach ($args as $arg) { 
      $this->myArray[] = $arg; 
     } 
    } 
} 

<?php 
class MyClass { 
public $myArray = array(); 

public function updateArray($newValue) { 
    $this->myArray[] = $newValue; 
} 

public function showArray() { 
    foreach($this->myArray as $arrayValue) { 
     echo "<li>"; 
     echo $arrayValue; 
     echo "</li>"; 
    } 
} 

} 

$var = new MyClass; 

$var->updateArray("Value 1"); 
$var->updateArray("Value 2"); 
$var->updateArray("Value 3"); 

echo $var->showArray(); 

?> 

答えて

1

破機能を使用するために応じて、コレクションを手配印刷します。それ以外の場合は値の配列を渡して処理します。最初のアイデアは、このスニペットを用いて実証することができる:

class MyClass { 
     public $myArray = array(); 

     public function updateArray($newValue) { 
      $arguments = func_get_args(); 
      if($arguments) { 
       foreach ($arguments as $argument) { 
        $this->myArray[] = $argument; 
       } 
      } 
     } 

     public function showArray() { 
      foreach($this->myArray as $arrayValue) { 
       echo "<li>"; 
       echo $arrayValue; 
       echo "</li>"; 
      } 
     } 

    } 

    $var = new MyClass(); 

    $var->updateArray("Value 1", "Value2", "Value 3"); 
    $var->showArray(); 

第アイデア:

class MyClass { 
     public $myArray = array(); 

     /** 
     * UPDATES THE INTERNAL ARRAY USING WHATEVER VALUES PASSED IN AS ARGUMENT(S) 
     * IN THIS CASE, YOU COULD PASS AS MANY ARGUMENTS AS YOU WISH AS STRING-VALUES... 
     * @param $newValue 
     */ 
     public function updateArray($newValue) { 
      $arguments = func_get_args(); 
      if($arguments) { 
       foreach ($arguments as $argument) { 
        $this->myArray[] = $argument; 
       } 
      } 
     } 

     /** 
     * UPDATES THE INTERNAL ARRAY USING A COLLECTION: AN ARRAY OF VALUES 
     * @param array $collection 
     */ 
     public function updateArrayFromCollection(array $collection) { 
      if($collection) { 
       foreach ($collection as $value) { 
        $this->myArray[] = $value; 
       } 
      } 
     } 

     public function showArray() { 
      foreach($this->myArray as $arrayValue) { 
       echo "<li>"; 
       echo $arrayValue; 
       echo "</li>"; 
      } 
     } 

    } 

    $var = new MyClass(); 

    $var->updateArrayFromCollection(["Value 1", "Value2", "Value 3"]); 
    $var->showArray(); 
1

あなたはそのようなものを使用することができますコードにエラーが含まれている可能性があります。

+0

ありがとう:の配列を渡すことは、以下のスニペットによって実証することができます。 )その作品 – heady12

0
public function showArray() { 
    foreach($this->myArray as $arrayValue) { 
     $array_collect[] = $arrayValue; 
    } 
} 

その後

$array = Implode (',',$array_collect); 
echo $array; 

あなたは、文字列値として他の引数を渡したい場合は単にfunc_get_argsを使用

関連する問題