簡體   English   中英

PHP模板中的未定義變量

[英]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.

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