我對ZendFramework頗爲陌生,並試圖弄清楚這一點。在我看來腳本(index.phtml),我有這樣的一些代碼,上面寫着:Zend框架查看腳本,函數和變量範圍
<?php
function getErrorString($element)
{
echo "<pre>";
print_r($this);
echo "</pre>";
$string = '';
if(!empty($this->error[$element]))
{
$string = $string.'<label class="error" for="'.$element.'" generated="true">';
foreach($this->error[$element] as $error)
{
$string = $string.$error;
}
$string = $string.'</label>';
}
return $string;
}
echo "<pre>";
print_r($this);
echo "</pre>";
getErrorString("blah");
die();
這給了我:
Fatal error: Using $this when not in object context in index.phtml on line XX
它,當你在一個視圖中創建一個函數在我看來, ,你失去了$這個變量。我在網上搜索過,我看不到其他人正在做我正在做的事情(極不可能,也許我錯了)。
有了開發其他應用程序的經驗,我不明白爲什麼這個函數應該放在一個單獨的幫助器中 - >尤其是因爲這是函數唯一被調用的地方。
任何想法將不勝感激。
感謝您的快速反應KC! 我不確定我是否明白你的意思。你說你不能在類定義中寫任何東西,但是接着說你可以定義方法嗎? 此外,我不明白爲什麼它會打印_ $(this)會起作用,但getErrorString(「blah」)不會。 乾杯! – lyf 2010-08-03 06:48:13
@lyf - 由於函數定義沒有綁定在類定義中,所以在函數定義中使用「$ this」將不起作用。 – 2010-08-03 06:58:36