我有一個有趣的情況。我正在使用包含在多個頁面中的表單(爲了簡化並減少重複),並且在某些區域中的此表單中填充了來自數據庫的值。但是,並非所有這些值都將始終存在。例如,我可以做一些效果:PHP帶字符串並檢查該字符串是否作爲變量存在
<?php echo set_value('first_name', $first_name); ?>
,並在那裏存在的價值,這將正常工作,但$用戶並不總是設置,因爲它們可能在首次被輸入他們的名字。是的,你可以在if語句中使用isset($first_name) && $first_name
(簡寫或常規)
我想寫一個幫助函數來檢查變量是否被設置,以及它是否爲空。理想情況下,我希望執行類似varIsset('first_name')
的操作,其中first_name是實際變量名稱$ first_name,並且該函數將接受該字符串,將其轉換爲預期變量$ first_name並檢查它是否設置爲非空值。如果它通過要求,然後返回該變量值(在這種情況下'測試')。如果它沒有通過要求,那麼它沒有設置或爲空,那麼函數將返回'{空白}'。
我使用的CodeIgniter如果有幫助,將在不久的將來切換到Laravel。任何幫助表示讚賞。這是我到目前爲止所做的,但無濟於事。
function varIsset($var = '')
{
foreach (get_defined_vars() as $val) {
if ($val == $var) {
if (isset($val) && $val) {
echo $val;
}
break;
}
}
die;
}
下面是一個例子用法:
<?php
if (varIsset('user_id') == 100) {
// do something
}
?>
我已經嘗試過的變量變量和沒有運氣。該函數將存在於幫助程序文件中。 –
@K_G我忘記了'global'聲明,請參閱我添加的工作示例。 – jeroen
感謝您的工作示例。儘管如此,我仍然得到一個FALSE,並且我知道這個變量絕對是在控制器中設置的 - >我正在查看的視圖。 –