我只是一个偶尔的 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();
据我所见, doSomething() 是在类上下文中调用的,正如我所展示的那样。
我究竟做错了什么?
编辑: 我查看了代码,我想我找到了导致这种情况的原因。html 输出中嵌入了一个 iframe,它是在一部分生成并稍后调用的。所以 setString() 方法实际上并没有立即调用,我首先想到的是在调用 iframe 代码时。所以这就是为什么它在我需要字符串输出的地方不可用。
我想就像现在的代码一样,除了 getIframe() 方法之外,没有办法获得 $someString 输出。