and

演算子

 状態:  閲覧数:5,904  投稿日: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/2/06 11:11 更新
週間人気ページランキング / 1-30 → 2-5
順位 ページタイトル抜粋 アクセス数
1 Parse error: syntax error, unexpected 'public' (T_PUBLIC) | Parse error(エラーメッセージ) 10
2 ブラウザを閉じたらセッションデータはどうなるの? | セッション 9
3 curl で Cookie を使用する 4
3 Fatal error: Access level to ▲::$△ must be protected (as in class ●) or weaker | Fatal error(エラーメッセージ) 4
3 PHPで定数を定義する方法は2種類ある / 配列定数の定義 4
4 コード例 … 「例外処理」はネストすることができる 3
4 Warning: PDO::query(): LOAD DATA LOCAL INFILE forbidden | Warning(エラーメッセージ) 3
4 http_build_queryとは? / 構文 /パラメータ 3
4 Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting | エラーメッセージ 3
5 Fatal error: Cannot redeclare 関数名() (previously declared in ファイル名:○○) in ファイル名 | Fatal error(エラーメッセージ) 2
5 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[28000] [1045] Access denied for user 'データベースユーザー名'@'localhost' (using password: YES)' | phpMyAdmin(データベース関連) 2
5 ( ! ) Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined | Fatal error(エラーメッセージ) 2
5 new clone違い | 演算子 2
5 オブジェクト関係マッピング | データベース関連 2
5 array_filter | 配列 2
6 Fatal error: Uncaught Error: Call to a member function modify() on string | Fatal error(エラーメッセージ) 1
6 Fatal error: require_once(): Failed opening required 'PEAR.php' | Fatal error(エラーメッセージ) 1
6 セッション単位 | セッション 1
6 htmlspecialchars / htmlentities / addslashes / mysql_real_escape_string / mysqli_real_escape_string | セキュリティ 1
6 dirname() / (__FILE__ ) / basename( dirname( __FILE__ ) ); | 関数 1
2025/2/6 1:02 更新