みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

どうしたら確認ができますか!?

以下参考書をそまま入力しました。
]
---------------------------------------------------
 論理積と論理和では、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

 以上です。
 
 よろしくお願いします。

 

投稿日時 - 2014-04-08 05:36:26

QNo.8546130

困ってます

質問者が選んだベストアンサー

本当にそのままだとすれば本の誤植でしょうが、閉じ括弧が抜けています。正しくは以下の通りです。
if(isset($argv[1]) && $argv[1]) {

というか、]) と書いてあるのを見間違って ] と入力したようにしか見えないのですが……。

投稿日時 - 2014-04-08 06:18:22

お礼

 ご回答誠にありがとうございました。
 if(isset($argv[1]) && $argv[1] {
 if(isset($argv[1]) && $argv[1]) {
 
 以上ご指摘いただいたとおりでした。
恥ずかしながら、
 よくある単純入力ミスでした。
 
 以下修正したことでプログラムの実行結果は以下となりました。
 
引く数が与えられていないか、与えられた引数が真ではありません

投稿日時 - 2014-04-09 04:29:26

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)