なぜisset($_POST['string'])
がphp 5.3とphp 5.4で同じように動作するのですか? 結局のところ、記事http://php.net/manual/en/migration54.incompatible.phpは、isset()が今や異なって動作すると言います。isset()が正常に動作しない
-4
A
答えて
1
説明が言うように:
非数値文字列のオフセットを - 例えば$ a ['foo']ここで、$ aは文字列です。-isset()ではfalseを返し、empty()ではtrueを返し、それらを使用しようとするとE_WARNINGを生成します。
double型、bool型、およびnull型のオフセットは、E_NOTICEを生成します。
数値文字列(例:$ a ['2'])は以前と同じように動作します。 '12 .3 'や' 5 foobar 'のようなオフセットは非数値とみなされ、E_WARNINGを生成しますが、下位互換性の理由から、それぞれ12と5に変換されます。
注:次のコードは異なる結果を返します。
$str='abc';var_dump(isset($str['x']));
// false for PHP 5.4 or later, but true for 5.3 or less
にのみ文字列として扱われる文字列に変更されます。たとえば、次のインデックスでアクセスされたとき
$test = "str";
$test = ['s','t','r'];
に等しいです。 PHP 5.4、
$test[2] will return 'r'
$test["2"] will also return 'r'
$test[2.3] will also return 'r'
$test["a"] will return false
isset($test["a"]) will return true
empty($test["a"]) will return false
前
PHP 5.4
$test[2] will return 'r'
$test["2"] will also return 'r'
$test[2.3] will also return 'r', but with a warning
$test["a"] will return false and produce a warning
isset($test["a"]) will return false
empty($test["a"]) will return true
だから、
$_POST
が本当の配列で、string
が本当の鍵であり、それは変化しなかった後これに空の行為。
関連する問題
- 1. php isset()関数が正常に動作していません
- 2. メッセージボックスが正常に動作しない
- 3. NsXmlParserが正常に動作しない
- 4. マウスが正常に動作しない
- 5. アクティビティスタックが正常に動作しない
- 6. CKeditorが正常に動作しない
- 7. カスケードパラメータが正常に動作しない
- 8. dict.update()が正常に動作しない
- 9. IS_ROLEMEMBERが正常に動作しない
- 10. AlarmManagerが正常に動作しない
- 11. Resolverが正常に動作しない
- 12. コンタクトテストビットマスクが正常に動作しない
- 13. チャートシリーズが正常に動作しない
- 14. DataGridView.ClearSelection()が正常に動作しない
- 15. タイマーが正常に動作しない
- 16. RefreshSectionが正常に動作しない
- 17. カラムが正常に動作しない
- 18. jQueryが正常に動作しない
- 19. バッチスクリプトが正常に動作しない
- 20. バックボーンフェッチが正常に動作しない
- 21. デリゲートメソッドが正常に動作しない
- 22. フローティングが正常に動作しない
- 23. CCLayerColorが正常に動作しない
- 24. アニメーションが正常に動作しない
- 25. ラケットプログラムが正常に動作しない
- 26. forEachFeatureAtPixelが正常に動作しない
- 27. ハイブクエリが正常に動作しない
- 28. SparseBooleanArray.equals()が正常に動作しない
- 29. キャプチャが正常に動作しない
- 30. ViewDragHelperが正常に動作しない
'isset($ _POST ['string'])' –
のような$ _POSTの間のスペースは '$ _POST'とは関係ありません。 - *数値以外の文字列オフセット* –