0

CentOSでPHP5.3.10でテストされています。

スクリプトで実行:

$test = "62 3/4";

if($pos = strpos($test,' ') !== false) {
  $test= substr($test,0,$pos); // use $pos
}
// $test is "6"

そして、私が実行する別の独立したスクリプトで:

if($pos = strpos($test,' ') !== false) {
  $test = substr($test,0,strpos($test,' ')); // redo substr calculation
}
// $test is "62"

$ posは2(3番目の文字は0、0、1、2から始まるスペース)である必要があるため、両方の$testは「62」である必要があります。

4

3 に答える 3

3

演算子の優先順位!!==の前に来る=ので、テストは効果的になります

if($pos = (strpos($test,' ') !== false))

これは、文字列の位置ではなく、trueまたはfalseのいずれかに評価されます。

常に明示的な親を使用します。

if(($pos = strpos($test,' ') !== false)
于 2012-09-19T04:51:33.433 に答える
1

あなたが欲しい

if( ($pos = substr($test, ' ')) !== false ) {
    // ...
}

PHP演算子の優先順位を参照してください

于 2012-09-19T04:53:04.113 に答える
0

また、2番目のifで、変数$testの値が最初の変数によってすでに変更されていることも考慮してください。$test = substr($ test、0、$ pos);

于 2012-09-19T05:00:20.073 に答える