2
我有一個接口,我試圖分配給smarty變量。在Smarty 3中增加了對班級內容的支持,並且我試圖利用它。smarty分配接口
namespace Application;
interface ServerResponseCodes
{
const FAILURE = 0;
const SUCCESS = 1;
const PENDING = 2;
const INVALID = 3;
}
然後
$smarty->assign("codes", Application\ServerResponseCodes);
拋出一個錯誤
Fatal error: Undefined constant 'Application\ServerResponseCodes' in /home/parvhraban/domains/src/www_root/clienttest.php on line 16
是不是可以從Smarty模板訪問接口consts?
是否有限制,我可以只分配初始化對象?
任何更好和更原生的解決方案,反射類?
$codes = new ReflectionClass ('Application\ServerResponseCodes');
$smarty->assign("codes", $codes->getConstants());
我想避免對模板內部的幻數進行編碼。有一個ajax調用被髮送到服務器API,返回一個幻數,我想將接口傳遞給模板。那些神奇的數字在模板中使用恐怕 –
我會給你帶來疑問的好處。但是,與您的問題有關,有多種解決方法。恐怕你不能直接訪問一個接口(使用PHP),除非它來自一個實現它的類,並且你不能通過它們的名字傳遞對類的引用,除非它是一個字符串值(或者是持有該類實例的變量)。我幾乎可以肯定,如果你使用一個沒有'new'的類名,它必須在後面使用'::'。 –
爲什麼你不能只傳入相關的狀態碼?你的Smarty模板中有商業邏輯嗎? –