[英]Undefined variables in PHP template
我在視圖層中使用PHP作為模板語言,是否可以使編寫的內容更簡潔,更簡潔?
//in temp.phtlm
<?= (isset($user['name'])) ? $user['name'] : null; ?>
不幸的是,我們甚至不能為此定義一個函數:
// as you know yet a notice is generated when calling function with undefined parameter
function out($var)
{
return (isset($var)) ? htmlentities($var) : null;
}
沒有捷徑可以更快地做到這一點,不是。 如果此時$ var不存在,則任何其他方法都將引發錯誤。
根據您的結構/模板系統,您可以使用一個類來存儲您的var,並使用魔術方法__get,__ set,__ isset和__unset來調用變量。 如果var不存在,則這些方法將只返回null。 不過,這將需要對代碼進行相當大的更改。 您可以在此處找到有關魔術方法的手冊: http : //php.net/manual/zh/language.oop5.magic.php
至於您的原始代碼,我會這樣寫:
<?php echo ( isset($var) ? $var : null ); ?>
//in temp.phtlm
<?=$var?>
//in whatever_your_script_name.php
$template->var = isset($var) ? htmlentities(whatever(convert(encode($var)))) : '';
$template->render('temp.phtml');
使用@
運算符是最簡單的選擇。
<?= @$user['name']; ?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.