2016-10-07 2 views
2

나는 다음 코드와 내가 하나 개의 호출로 여러 값으로 배열을 업데이트 할 수 있도록 내가이를 편집 할 수 있습니다 궁금 해서요 있습니다PHP 클래스 업데이트 배열 - 만들려면 더 효율적

$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

단순히 func_get_args을 사용하여 사용 내파 기능에 따라 수집을 주선 인쇄; 그렇지 않으면 값의 배열을 전달하고 처리하십시오. 첫 번째 아이디어는이 코드로 설명 될 수있다 :

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; 

당신이 문자열 값으로 다른 인수를 전달하고자하는 경우