- ベストアンサー
どうしたら確認ができますか!?
以下参考書をそまま入力しました。 ] --------------------------------------------------- 論理積と論理和では、2通りの表記方法がありますが、これは演算子の優先順位(注6)が違います。 (注意6)優先順位については3.2.3(P80)を参照 <?php $flag and foo(); if(isset($argv[1] && $argv[1] { echo '与えられた引数は真です',PHP_EOL; } else{ echo '引数が与えられていないか、与えられた引数が真ではありません' ,PHP_EOL; } この列では、引数が与えられているかをまずチェックし、与えられている場合はそれが真である かを調べます。論理演算子では、評価結果がわかった時点で演算結果を返します。これを短絡評価 といいます。短絡評価されるため、最初のisset($argv[1])が為である場合、次の$argv[1]の評価 は一切行われません(もし評価されてしまったならば、NOtic:Undefined offset:1となってしまい ます)。 たとえば、次の例では、$flagが為の場合では、関数foo()が呼ばれることはありません。 <?php $flag and foo(); ----------------------------------------------------------- 以上ですが、 これって、どうしたら確認ができますか!? xamppは働いています。 HTMLで試しましたがParseエラーがでました。 <html> <head> <meta "charset=utf-8" /> <title>論理演算子</title> </head> <body> <?php if(isset($argv[1] && $argv[1] { echo '与えられた引数は真です',PHP_EOL; } else{ echo '引く数が与えられていないか、与えられた引数が真ではありません' ,PHP_EOL; } ?> </body> </html> 以上の実行結果は 以下です。 Parse error: syntax error, unexpected '&&' (T_BOOLEAN_AND), expecting ',' or ')' in C:\xampp\htdocs\study.localhost\php.php on line 10 以上です。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
本当にそのままだとすれば本の誤植でしょうが、閉じ括弧が抜けています。正しくは以下の通りです。 if(isset($argv[1]) && $argv[1]) { というか、]) と書いてあるのを見間違って ] と入力したようにしか見えないのですが……。
お礼
ご回答誠にありがとうございました。 if(isset($argv[1]) && $argv[1] { if(isset($argv[1]) && $argv[1]) { 以上ご指摘いただいたとおりでした。 恥ずかしながら、 よくある単純入力ミスでした。 以下修正したことでプログラムの実行結果は以下となりました。 引く数が与えられていないか、与えられた引数が真ではありません