- $a=10;
- $b=5;
- $c=$a++; //先赋值,后自增.$c=$a,$a=$a+1
- $d=$b--; //先赋值,后自减.$d=$b,$b=$a-1
- echo '$a='.$a."||".'$c='.$c.'
'; //$a=11,$c=10 - echo '$b='.$b."||".'$d='.$d.'
'; //$b=4,$d=5 - ?>
- $a=10;
- $b=5;
- $c=++$a; //先自增,后赋值.$a=$a+1,$c=$a
- $d=--$b; //先自减,后赋值.$b=$a-1, $d=$b
- echo '$a='.$a."||".'$c='.$c.'
'; //$a=11,$c=11 - echo '$b='.$b."||".'$d='.$d.'
'; //$b=4,$d=4 - ?>
- $a>$b ? print "Yes" : "";
- $a>$b ? '': print 'No';
- $str = $_GET['abc'] ? 'wangjinbo' : 'wjb';
- $a=10;$b=7;
- if($a++>8 || $b++>7){ //$a++>8为真,$b++>7这个就不执行了
- echo 'OK!';
- }
- echo 'a='.$a.'b='.$b; // 输出OK,a=11,b=7
- 改变一下
- $a=10;$b=7;
- if($a++>10 && $b++>7){ //$a++>8为假,$b++>7这个就不执行了
- echo 'OK!';
- }
- echo 'a='.$a.'b='.$b; // a=11,b=7
- and< = <&&
- or < = < ||
- $a=false || true; //&& > = > and ;先比较false || true,再赋值
- $b=false or true; //|| > = > or ;先赋值$b=false,再比较,所以结果是false
- var_dump($a,$b); //bool(true) bool(false)
- /*
- * Ignore the top section,
- * it is just formatting to make output clearer.
- */
- $format = '(%1$2d = %1$04b) = (%2$2d = %2$04b)'
- . ' %3$s (%4$2d = %4$04b)' . "n";
- echo <<
- --------- --------- -- ---------
- result value op test
- --------- --------- -- ---------
- EOH;
- /*
- * Here are the examples.
- */
- $values = array(0, 1, 2, 4, 8);
- $test = 1 + 4;
- echo "n Bitwise AND n";
- foreach ($values as $value) {
- $result = $value & $test;
- printf($format, $result, $value, '&', $test);
- }
- echo "n Bitwise Inclusive OR n";
- foreach ($values as $value) {
- $result = $value | $test;
- printf($format, '|', $test);
- }
- echo "n Bitwise Exclusive OR (XOR) n";
- foreach ($values as $value) {
- $result = $value ^ $test;
- printf($format, '^', $test);
- }
- ?>
--------- --------- -- ---------
result value op test
--------- --------- -- ---------
Bitwise AND
( 0 = 0000) = ( 0 = 0000) & ( 5 = 0101)
( 1 = 0001) = ( 1 = 0001) & ( 5 = 0101)
( 0 = 0000) = ( 2 = 0010) & ( 5 = 0101)
( 4 = 0100) = ( 4 = 0100) & ( 5 = 0101)
( 0 = 0000) = ( 8 = 1000) & ( 5 = 0101)
Bitwise Inclusive OR
( 5 = 0101) = ( 0 = 0000) | ( 5 = 0101)
( 5 = 0101) = ( 1 = 0001) | ( 5 = 0101)
( 7 = 0111) = ( 2 = 0010) | ( 5 = 0101)
( 5 = 0101) = ( 4 = 0100) | ( 5 = 0101)
(13 = 1101) = ( 8 = 1000) | ( 5 = 0101)
Bitwise Exclusive OR (XOR)
( 5 = 0101) = ( 0 = 0000) ^ ( 5 = 0101)
( 4 = 0100) = ( 1 = 0001) ^ ( 5 = 0101)
( 7 = 0111) = ( 2 = 0010) ^ ( 5 = 0101)
( 1 = 0001) = ( 4 = 0100) ^ ( 5 = 0101)
(13 = 1101) = ( 8 = 1000) ^ ( 5 = 0101)
@H_404_0@比较运算符@H_404_0@如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换为数值并且比较按照数值来进行.此规则也适用于 switch 语句.当用 === 或 !== 进行比较时则不进行类型转换,因为此时类型和数值都要比对.@H_404_0@实例代码如下:- var_dump(0 == "a"); // 0 == 0 -> true
- var_dump("1" == "01"); // 1 == 1 -> true
- var_dump("10" == "1e1"); // 10 == 10 -> true
- var_dump(100 == "1e2"); // 100 == 100 -> true
- switch ("a") {
- case 0:
- echo "0";
- break;
- case "a": // never reached because "a" is already matched with 0
- echo "a";
- break;
- }
- ?>
NULL
转换为 "",进行数字或词汇比较 bool 或 null 任何其它类型 转换为 bool,FALSE
< TRUE
object object 内置类可以定义自己的比较,不同类不能%