PHP 位移 (>)


位元左移運算 4<<2

  • 4 換為二進制: 100
  • 向左移2位即: 10000
  • 也就是: 16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php 
define( "TIYU", 1<<1 ); //體育=2
define( "CHANGGE", 1<<2 ); //唱歌=4
define( "MEISHU", 1<<3 ); //美術=8
define( "YUEDU", 1<<4 ); //閱讀=16
$A = 2 | 8; //客戶A的愛好有 「體育+美術」
$B = 4 | 8; //客戶B的愛好有 「唱歌+美術」
$C = 2 | 4 | 16; //客戶C的愛好有「體育+唱歌+閱讀」
/*
也可以這樣定義客戶愛好
$A = TIYU | MEISHU; //客戶A的愛好有「體育+美術」
$B = CHANGGE | MEISHU; //客戶B的愛好有「唱歌+美術」
$C = TIYU | CHANGGE | YUEDU; //客戶C的愛好有「體育+唱歌+閱讀」
*/
//定義一個打印客戶愛好的函數
function aihao( $name ){
if( $name & TIYU ) echo "體育<br>";
if( $name & CHANGGE ) echo "唱歌<br>";
if( $name & MEISHU ) echo "美術<br>";
if( $name & YUEDU ) echo "閱讀<br>";
}
echo '客戶A的愛好有:<br>';
aihao( $A );
echo '客戶B的愛好有:<br>';
aihao( $B );
echo '客戶C的愛好有:<br>';
aihao( $C );
?>

參考: http://bbs.chinaunix.net/viewthread.php?tid=1707965