ホームページ >バックエンド開発 >PHPチュートリアル >三項演算子の通知プロンプト

三項演算子の通知プロンプト

WBOY
WBOYオリジナル
2016-06-20 12:52:391417ブラウズ

$act = isset($_POST['act']) ? $_POST['act']:(isset($_GET['act']) ? $_GET['act']:'login');


上記のコードの最後の三項演算子を括弧で囲む必要があるのはなぜですか? そうしないと通知エラーが発生します


Reply Discussion (解決策)

あなたが言及した現象は存在しません

注意: 未定義のインデックス: C:UsersJohnDesktopshopadminprivilege.php の 3 行目で動作


少なくともそれはあなたです それはこれが事実であることは反映されていません

何が起こっているのでしょうか?どうすれば通知を提出できますか?

私の #3 のスクリーンショットのことですか?
2行目で、値を代入せずに$actを直接使用した場合(echo $act;)、当然通知が報告されます
しかし、3行目では追加したい括弧がありません。しかし、通知も報告されません

私は証明するためにこれを行いました: 私は通知レベルのエラーをブロックしませんでした

エラーをブロックするために @ を使用しませんでした。括弧を追加すると naotice エラーが発生しますか? 括弧を追加しないと naotice エラーは発生しません。

問題ありません。
あなたが提供したコードは不完全であり、通知は他の場所から来たものと推定されます。

<?phpini_set('display_errors','on');error_reporting(E_ALL);$act = isset($_POST['act']) ? $_POST['act']:(isset($_GET['act']) ? $_GET['act']:'login');$act = isset($_POST['act']) ? $_POST['act']:isset($_GET['act']) ? $_GET['act']:'login';?>

括弧がないと、この変数が定義されていないという通知が表示されます。この行為には、
array( 4) { ["act "]=> string(6) "signin" ["username"]=> string(0) "" ["captcha" ]=> string( 0) ""

これに変更すれば大丈夫です

$act = isset($_REQUEST['act']) ? $_REQUEST['act']:isset($_REQUEST['act']) ? $_REQUEST['act']:'login';


全て統一されています $_REQUEST

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。