簡體   English   中英

如何將變量傳遞給PHP類中包含的文件?

[英]How can I pass variables to a file included in a class in PHP?

因此,我正在研究自己的小MVC框架作為學習練習。 它工作得很好,但是我希望能夠在沒有$ this的情況下引用視圖文件中的變量。

因此,例如,我有一個實例化視圖對象的控制器對象。 從控制器,我將變量傳遞給這樣的視圖

$this->view->foo = "bar";

然后,視圖對象包括該視圖的相關代碼(例如:myView.phtml)。 所以要在視圖文件中訪問“ foo”

echo $this->foo;

但是我想做的是,我不知道這是否可能,或者我是否缺少明顯的東西,但是我想做的是引用這樣的變量

echo $foo;

沒有我發布整個源代碼,沒有人能指出我正確的方向嗎?

您可以編寫一些代碼來解析您的html視圖輸入,並自動將您的條目從$ foo或[foo]修改為$ this-> foo。

因此,您可以在html視圖中放置以下內容:

<p>[foo]</p>

然后讓一些視圖代碼解析該文件,並將[foo]的所有實例更改為$ this-> foo的值。 因此您的輸出變為:

<p>I'm the foo value</p>

或者,您可以使用Smarty之類的東西-它可以為您做到這一點,並且還有很多其他原因也要使用它。

您嘗試過提取嗎? 您必須添加一種方法,將所有變量放入數組中。 唯一真正的限制是,這會使變量變為只讀。

如果希望視圖對象中的每個變量在視圖內可用,則可以將變量添加到作為數組的視圖對象的屬性中,然后使用extract()使它們可用:

$this->view->variables['foo'] = 'bar';

extract($this->view->variables); // now $foo = 'bar';

我不是extract()的忠實擁護者,但這可以滿足您的需求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM