如何在 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;