and

演算子

 状態:  閲覧数:6,042  投稿日:2010-05-06  更新日:  
論理積。両オペランドが「真」なら「true」を返す。

右辺が「false」でも左辺は評価されるが、左辺が「false」なら右辺は評価されない。
※(「左辺」「右辺」)の(「false」や「true」)は、それぞれのオペランドの処理結果。
また、「左辺処理結果false」でも、左辺の呼出先実行処理結果は評価される。
「右辺処理結果false」でも、右辺の呼出先実行処理結果は評価される。※但し「左辺=true」であることが前提条件。
なお、演算子「and」「&&」は基本的に同義(※厳密には「&&」の方が「and」より優先順位が高い) 。

<pre>
<?php
print "▼論理積。両オペランドが「真」なら「true」を返す
";
print "左辺\$a =".($a=1)."
";
++$a and $x = true;
print "「true」 and 「true」 → ";
var_dump(++$a and $x = true);
print "左辺\$a =".$a."

";

$a=1;
print "▼右辺が「false」でも左辺は評価される
";
print "左辺\$a =".($a=1)."
";
++$a and $x = false;
print "「true」 and 「false」 → ";
var_dump(++$a and $x = false);
print "左辺\$a =".$a."

";

$b=1;
print "▼左辺が「false」なら右辺は評価されない
";
print "右辺\$b =".($b=1)."
";
$x = false and ++$b;
print "「false」 and 「true」 → ";
var_dump($x = false and ++$b);
print "右辺\$b =".$b."

";

$a=1;
print "▼&&演算子が、and演算子と、基本的に同義であることの確認(※厳密には「&&」の方が「and」より優先順位が高い)
";
print "左辺\$a =".($a=1)."
";
++$a && $x = true;
print "「true」 and 「true」 → ";
var_dump(++$a && $x = true);
print "左辺\$a =".$a."

";

print "▼(「左辺」「右辺」)の(「false」や「true」)は、それぞれのオペランドの処理結果であることの確認
";
function fb(){
return false;
}
function fc(){
return true;
}
fb() and fc();
print "「false」 and 「true」 → ";
var_dump(fb() and fc());
fc() and fc();
print "「true」 and 「true」 → ";
var_dump(fc() and fc());
print "
";

print "▼「左辺処理結果false」でも、左辺の呼出先実行処理結果は評価される
";
$az=1;
function fd(){
global $az;
++$az;
return false;
}
print "左辺呼出先\$az =".($az=1)."
";
print "「false」 and 「true」 → ";
var_dump(fd() and fc());
fd() and fc();
print "左辺呼出先\$az =".$az."

";

print "▼「右辺処理結果false」でも、右辺の呼出先実行処理結果は評価される。※但し「左辺=true」であることが前提条件
";
$bz=1;
function fe(){
global $bz;
++$bz;
return false;
}
print "右辺呼出先\$bz =".($bz=1)."
";
print "「true」 and 「false」 → ";
var_dump(fc() and fe());
fc() and fe();
print "右辺呼出先\$bz =".$bz."

";
print "

";
?>
</pre>


▼結果
  /demo/and.html




new clone違い

or(||)

コメント投稿(ログインが必要)



類似度ページランキング
順位 ページタイトル抜粋
1 and 100
2 include_path 40
3 include 40
4 final修飾子 36
5 var_dump() 31
6 array_diff 31
7 Generators 31
8 set_error_handler 30
9 SessionHandler::gc 29
10 syntax error 27
11 array_reduce 27
12 die() 25
13 mixed 25
14 json_encode関数 25
15 popen 25
16 break文 22
17 include require 22
18 session_start() 22
19 Xdebug 22
20 session_set_save_handler() 21
2025/7/06 4:06 更新
週間人気ページランキング / 6-29 → 7-5
順位 ページタイトル抜粋 アクセス数
1 PHP用語 5
1 PHPにおけるメソッドのオーバーライドについて /「引数の数や型は、親クラスのメソッドと完全に一致していなければなりません。」とは具体的にどういう意味ですか? 5
2 ブラウザを閉じたらセッションデータはどうなるの? | セッション 4
2 PHPで定数を定義する方法は2種類ある / 配列定数の定義 4
2 ブラウザを閉じたらセッションデータはどうなるの? | セッション 4
3 ( ! ) Fatal error: Uncaught Abraham\TwitterOAuth\TwitterOAuthException: 現在この機能は一時的にご利用いただけません | Fatal error(エラーメッセージ) 3
3 Notice(エラーメッセージ) カテゴリー 3
3 Fatal error: Non-abstract method クラス名::メソッド名 must contain body in ○○.php on line △△ | Fatal error(エラーメッセージ) 3
3 オブジェクト関係マッピング | データベース関連 3
3 Parse error: syntax error, unexpected 'public' (T_PUBLIC) | Parse error(エラーメッセージ) 3
3 「POSIX正規表現」と「PCRE正規表現」の違い 3
3 ob紛らわしい関数()一覧 | 出力バッファリング制御(関数) 3
3 Fatal error: require_once(): Failed opening required 'PEAR.php' | Fatal error(エラーメッセージ) 3
4 Fatal error: Uncaught Error: Call to a member function modify() on string | Fatal error(エラーメッセージ) 2
4 エラー | エラーメッセージ 2
4 Fatal error: Cannot use object of type stdClass as array | Fatal error(エラーメッセージ) 2
4 Warning: strlen() expects parameter 1 to be string, array given in ○○.php on line △△ | Warning(エラーメッセージ) 2
4 結合時の評価と優先順位 | 演算子 2
4 Propel | データベース関連 2
4 Fatal error: Uncaught RuntimeException: SplFileObject::__construct(): failed to open stream: Permission denied in | Fatal error(エラーメッセージ) 2
2025/7/6 1:01 更新