我有以下代码,我想知道如何编辑它,以便我可以通过一次调用使用多个值更新数组:
$var->updateArray("Value 1", "Value2", "Value 3", and so on.... );
我目前的代码是:
<?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();
?>
最佳答案
Simply use
func_get_args
if you wish to pass the other arguments as string values; otherwise pass an Array of values and Process it. The first Idea could be demonstrated with this snippet:
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();
The second idea: passing an Array of values could be demonstrated by the snippet below:
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();
关于PHP 类更新数组 - 如何提高效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39915675/