dougongnan2167 2011-12-14 14:36
浏览 7
已采纳

是否可以按名称设置类属性?

Simple question here... I was wondering if it's possible to access class propertys by it's name in any way.

Imagine this scenario:

$array = array(
    'foo' => 'bar',
    'hello' => 'world',
    'chuck' => 'norris'
);

And then have this class:

class MegaClass {
    public $foo, $hello, $chuck;
}

I was wondering if I could set MegaClass::foo to bar, MegaClass::hello to world and so on, automatically. So, given the array, and given the object, the object is filled. This could be really handy when retreiving data from a form with properties filled...

  • 写回答

6条回答 默认 最新

  • doupao5296 2011-12-14 14:40
    关注

    Well for one thing if you wanted to do MegaClass::foo they would have to be static.

    And if they were static you could do:

    foreach($array as $key=>$val){
        MegaClass::$key = $val;
    }
    

    And if they were not static (but were still public):

    foreach($array as $key=>$val){
        $MegaClassObject->$key = $val;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?