更改对象的值

时间:2014-09-18 10:47:04

标签: php

当我更改对象中的值时,我通常会这样做:

对象

Array
(
    [0] => stdClass Object
        (
            [created] => 1411033208
            [title] => test
            [description] => more test
        )

    [1] => stdClass Object
        (
            [created] => 1411033208
            [title] => test2
            [description] => more test 2
        )

)

代码

$list = array();
foreach ($entries AS $entry)
{
    $entry->created = date('Y-m-d', $entry->created);
    $list[] = $entry;
}

有更聪明的方法吗?

2 个答案:

答案 0 :(得分:0)

无需存储到$ list或其他数组,您可以直接修改它。假设你追求的是什么。

foreach ($entries AS $entry)
{
    $entry->created = date('Y-m-d', $entry->created);
}

答案 1 :(得分:-2)

我认为更聪明的方法是在课堂上使用魔术方法。魔术方法__get和__set将允许您在代码中稍后分配对象属性。

class GlobalClass{
    //Magic Methods
    public function __set($name, $value){
        $this->data[$name] = $value;
    }

    public function __get($name){
        if (array_key_exists($name, $this->data)) {
            return $this->data[$name];
        }
    }
}

然后你可以创建一个对象并为其分配任何属性:

$gc = new GlobalClass();
$gc->myProperty = 'Yaaay';

然后稍后使用它:

echo $gc->myProperty;

希望这是有道理的!