在函数中设置对象值或从函数返回值是否更好?

时间:2013-11-29 09:29:23

标签: php arrays codeigniter object

假设我有一个数据数组,我想处理一些将在此数组中添加或修改数据的函数。 e.g。

$my_data = array(
    'val1' => 'my value 1',
    'val2' => 'my value 2'
);

传统上我会将数组或值传递给函数并返回一些数据,例如

$my_data['val1'] = $this->get_new_var($my_data['val1']);

嗯,我刚刚开始做一些不同的事情,我认为更好......我在$ this对象中创建了数组,就像这样(我正在使用Expression Engine): -

$this->EE->my_data = $my_data;

然后我只调用一个不需要返回值的set方法(而不是get),因为它设置了函数中的值,例如

$this->set_new_var();

在set_new_var()函数中,我可以调用$ this-> EE-> my_data数组并对其进行操作并将其设置如下:

$this->EE->my_data['val1'] = $my_new_var;

所以这在我看来更清洁,不需要在函数之间传递变量。

这也意味着如果需要,我可以在set函数中设置多个值,而不是从函数返回一个值(或者传递整个数组并返回它)。

所以我的问题是,这个set()方法是否会被认为更好,或者我应该坚持使用传统的get()方法。

由于

1 个答案:

答案 0 :(得分:0)

在我看来,set()方法允许我以自己的方式处理输入并对其进行操作,即我可以根据我的用例清理输入并仅传递干净的过滤输入值我的功能。此外,set()方法不仅可以用来设置变量。例如,在特定用例中,每当为给定变量(OOP)设置新值时,我可能想要运行特定方法或进程或甚至延迟作业。每次都可以使用set()方法做到这一点。每次都需要这样的行为时,不需要重复所有的陈述。

但是,这是我自己的意见。