如何在PHP smarty中分配变量之前检查变量是否为空?

时间:2018-01-24 18:20:32

标签: php prestashop 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->手机是否为空,如果是,请指定 $ address-> phone_mobile 。如果不是,那么应该进行现有的分配。有人可以帮我解决这个问题吗?

P.S .- 如果重要,Prestashop将被用作电子商务解决方案。

2 个答案:

答案 0 :(得分:1)

您可以使用三元运算符的空变量:

'contact_number' => $address->phone ?: $address->phone_mobile,

答案 1 :(得分:1)

如果你知道var是否存在,你可以使用isset()

'contact_number' => isset($address->phone) ? $address->phone : $address->phone_mobile;

如果你确定var存在但是你知道是否是一个空文本

'contact_number' => strlen($address->phone) > 0 ? $address->phone : $address->phone_mobile;