如何在 PHP smarty 中赋值之前检查变量是否为空?
How can I check whether a variable is empty before assigning it in PHP smarty?
首先我不是 PHP 开发者。我主要来自 .net 堆栈背景。我正在帮助一个电子商务网站的朋友,在他的一个模块中我遇到了以下代码:
$this->smarty->assign(array(
'first_name' => $params['cookie']->customer_firstname,
'last_name' => $params['cookie']->customer_lastname,
'email' => $params['cookie']->email,
'contact_number' => $address->phone,
'address_line_one' => $address->address1,
'address_line_two' => $address->address2,
'city' => $address->city,
'postal_code' => $address->postcode,
'Country' => $address->country
));
我想在这里做的是检查 $address->phone 是否为空,如果是,则分配 $address- >phone_mobile 代替。如果不是,则应执行现有分配。有人可以帮我实现这个吗?
P.S.- 如果重要的话,Prestashop 被用作电子商务解决方案。
您可以使用三元运算符的空变体:
'contact_number' => $address->phone ?: $address->phone_mobile,
如果您想知道变量是否存在,可以使用 isset()
'contact_number' => isset($address->phone) ? $address->phone : $address->phone_mobile;
如果您确定 var 存在但您不知道它是否为空文本
'contact_number' => strlen($address->phone) > 0 ? $address->phone : $address->phone_mobile;
首先我不是 PHP 开发者。我主要来自 .net 堆栈背景。我正在帮助一个电子商务网站的朋友,在他的一个模块中我遇到了以下代码:
$this->smarty->assign(array(
'first_name' => $params['cookie']->customer_firstname,
'last_name' => $params['cookie']->customer_lastname,
'email' => $params['cookie']->email,
'contact_number' => $address->phone,
'address_line_one' => $address->address1,
'address_line_two' => $address->address2,
'city' => $address->city,
'postal_code' => $address->postcode,
'Country' => $address->country
));
我想在这里做的是检查 $address->phone 是否为空,如果是,则分配 $address- >phone_mobile 代替。如果不是,则应执行现有分配。有人可以帮我实现这个吗?
P.S.- 如果重要的话,Prestashop 被用作电子商务解决方案。
您可以使用三元运算符的空变体:
'contact_number' => $address->phone ?: $address->phone_mobile,
如果您想知道变量是否存在,可以使用 isset()
'contact_number' => isset($address->phone) ? $address->phone : $address->phone_mobile;
如果您确定 var 存在但您不知道它是否为空文本
'contact_number' => strlen($address->phone) > 0 ? $address->phone : $address->phone_mobile;