PHP 类更新数组 - 如何提高效率

标签 php arrays class

我有以下代码,我想知道如何编辑它,以便我可以通过一次调用使用多个值更新数组:

$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/

相关文章:

c++ - 在cpp中对象初始化后设置数组的边界

javascript - 在 JS 中工作的正则表达式在 PHP 中不起作用

new引起的C++ bad_alloc?

c++ - 按值传递类和结构

java - 如何创建一个包含 1000 个随机生成的整数的数组?

javascript - 检查一个数组是否包含javascript中另一个数组的一部分

c++ - 为什么它试图发送一个字符数组而不是一个字符串?

php - 如何保护流媒体视频不被下载

php - mysql 正在运行但无法连接到 127.0.0.1

php - 更新 wampserver 中的值