PHP:类变量可见性

ulr*_*ich -1 php class-visibility

我只是一个曾经的PHP开发人员.现在,在遗留应用程序上工作,我只是遇到了以下问题,这看起来非常愚蠢.但我不能得到$ someString类变量来保持正确的值:

class MyClass{

    var $someString;

    function doSomething(){
        //$this->setString(); //this is effectively not called here, but later in getIframe()       
        $this->buildIframe();       
        echo $this->someString; //actually, I need someString here, but it is empty 
    }


    function setString(){   
        $this->someString = "something";
    }


    function buildIframe(){
        $content .= <iframe....>;
    }

    function getIframe(){
        $this->setString();
    }
}

$myClassInstance = new MyClass();    
$myClassInstance->doSomething();
$myClassInstance->getIframe();
Run Code Online (Sandbox Code Playgroud)

据我所知,doSomething()在类上下文中被调用,正如我所展示的那样.

我究竟做错了什么?

编辑: 我审查了代码,我想我发现了什么导致了这一点.在html输出中嵌入了一个iframe,它在一个部分生成并稍后调用.所以setString()方法实际上并没有立即调用,我首先想到的是调用iframe代码时.这就是为什么它在我需要字符串输出的地方不可用.

我想现在的代码就是这样,除了getIframe()方法之外,没有办法获得$ someString输出.

Rob*_*ert 5

此代码100%正确且有效.我在PHP 5上检查了它.它在字符串中回响"某事".这是正确的行为.

来自手册:

注意:出于兼容性原因,仍然支持使用var关键字声明变量的PHP 4方法(作为public关键字的同义词).在5.1.3之前的PHP 5中,其用法将生成E_STRICT警告.