0

让我们说:

class myclass{
     protected $info;
     protected $owner;
     __construct(){
        $this->info = 'nothing';
        $this->owner = 'nobody';
    }
    function getProp($string){
        return $this->$string;
    }
}

但它不起作用,这不可能吗?它没有返回任何内容或显示错误

4

3 回答 3

1

function在你的 __construct 之前添加了,但除此之外它似乎工作正常

class myclass{
     protected $info;
     protected $owner;
     function __construct(){
        $this->info = 'nothing';
        $this->owner = 'nobody';
     }
     function getProp($string){
        return $this->$string;
     }
}

$m = new myclass();
echo $m->getProp('info');

// echos 'nothing'
于 2012-05-31T21:57:08.580 回答
1

它工作正常,但是您缺少 . 前面的 function 关键字__construct。这输出“无”:

<?php

class myclass{
     protected $info;
     protected $owner;

    function __construct(){
        $this->info = 'nothing';
        $this->owner = 'nobody';
    }
    function getProp($string){
        return $this->$string;
    }
}

$test = new myclass();
echo $test->getProp('info');
于 2012-05-31T21:57:21.903 回答
0

我认为你应该阅读 PHP 的魔法方法。你正在做的事情很有可能,但你做的方式可能不是最好的。

http://php.net/manual/en/language.oop5.magic.php

我认为您应该查看 __get() 和 __set() 方法。

于 2012-05-31T21:56:21.297 回答