2017-11-17 9 views
2

私は以下のコードを持っています。このStrPosはどのようにPHPで動作しますか?

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

私はそれがうまくいくと思う方法::$_order->getDiscountDescription()に「ギフトカード」を探し、それが偽でなければ、何かをする、それが働いている場合、私はそれだと思うように私は思ったんだけど。私は何かが何であるかに従わない。その上の任意のアイデア?

+1

質問する適切なプラットフォームは: - https://codereview.stackexchange.com/です。ちょうどそれが起こっている正確に何を考えているか。読む: - [strpos() - 手動](http://php.net/manual/en/function.strpos.php) –

+0

あなたは正しいです。 '$ order'変数にデータを追加します。 – chris85

答えて

4

これは、基本的には文字列リテラル「ギフトカードは」(すなわち、仮定、それは文字列を返す...)$_order->getDiscountDescription()によって返される文字列に含まれているかどうかをチェックします。位置は0(文字列の先頭)である可能性があるので、演算子!==とオペランドfalseの使用が使用されます。 the documentation for strpos()上の警告を参照してください。

警告 この関数はFALSEブールを返すことがありますが、またFALSEと評価され非ブール値を返すことがあります。詳細については、Booleansのセクションをお読みください。この関数の戻り値をテストするにはthe === operatorを使用してください。

その条件が真である

は、変数$order$_order->getDiscountDescription()への呼び出し、5つのアスタリスク文字、キャリッジからの戻り値が続くRGC1*1*リテラル文字列を付加します(順序の説明、つまり「ギフトカード」を含みます)戻り文字(すなわち、\r)と改行文字(つまり\n)です。

関連する問題