繁体   English   中英

这个特定的StrPos如何在PHP中工作?

[英]How does this particular StrPos work in PHP?

我有以下代码。 我想知道它是否像我认为的那样工作:

//Gift Card Redemption
        if(strpos($_order->getDiscountDescription(), 'Gift Card') !== false){
                $order .= 'RGC1*1*'.$_order->getDiscountDescription().'*****';
                $order .= "\r\n";
        }  

我认为它是如何工作的:在$_order->getDiscountDescription()查找“礼品卡”,如果它不是false,请执行一些操作。 我不明白那是什么。 有什么想法吗?

这基本上是检查字符串文字' Gift Card '是否包含在$_order->getDiscountDescription()返回的字符串中(即假定它返回了一个字符串...)。 使用运算符!==和操作数false的原因是位置可能为0,表示字符串的开头。 请参考文档中关于strpos()的警告:

警告此函数可能返回布尔FALSE ,但也可能返回非布尔值,其值为FALSE 请阅读布尔值部分以获取更多信息。 使用===运算符测试此函数的返回值。

当该条件为真时(即订单描述中包含“礼品卡”),则变量$order附加字符串文字RGC1*1*后跟调用$_order->getDiscountDescription()的返回值,即5字符,回车符(即\\r )和换行符(即\\n )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM