我有以下代码。我想知道它是否像我认为的那样工作:
//Gift Card Redemption
if(strpos($_order->getDiscountDescription(), 'Gift Card') !== false){
$order .= 'RGC1*1*'.$_order->getDiscountDescription().'*****';
$order .= "\r\n";
}
我认为它如何运作:寻找礼品卡'在$_order->getDiscountDescription()
中,如果它不是假的,那就做点什么吧。但是,我并不关注那些东西。有什么想法?
答案 0 :(得分:4)
这基本上会检查$_order->getDiscountDescription()
返回的字符串中是否包含字符串文字' Gift Card '(即假设它返回一个字符串......)。使用运算符!==
和操作数false
的使用是因为位置可能为0,表示字符串的开头。请参阅the documentation for strpos()上的警告:
警告强> 此函数可能返回布尔 FALSE ,但也可能返回非布尔值,其值为 FALSE 。有关详细信息,请阅读Booleans部分。使用the === operator来测试此函数的返回值。
当条件为真时(即订单描述包含'礼品卡'),变量$order
会附加字符串文字RGC1*1*
,后跟调用{{1}的返回值5个星号字符,一个回车符(即$_order->getDiscountDescription()
)和一个换行符(即\r
)。