PHP 的位元運算 (Bitwise operation) 和 perl 不太一樣的只有符號的差別,其餘的運算是相同的,下表將差別列出來:
Operation | PHP | PERL | 說明 |
AND | & | & | |
OR | | | | | |
XOR | ^ | ^ | |
NOT | ~ | ! | 兩者不同,有關PHP和Perl的NOT運算請參考下面比較表 |
Complement | 無 | ~ | PHP 無補數運算 |
SHIFT RIGHT | >> | >> | |
SHIFT LEFT | << | << |
PHP
$A 原值 | !$A | gettype( !$A) | is_null( !$A) |
0 | 1 | boolean | false |
1 | false | boolean | false |
"" | 1 | boolean | false |
Perl
$A | !$A | defined( !$A) ? |
0 | 1 | true |
1 | null | true |
"" | 1 | true |
說明
PHP和Perl兩者Not的不同點在於:
Perl 沒有 boolean 這種型態,所以他的 !真值 = 空值 null,PHP一經NOT 計算後就會變成boolean值。
PHP和Perl兩者Not的相同點在於:
兩者的0, 空值""的NOT值都等於1
延伸閱讀
[PERL] 位元運算 Bitwise operation@精讚
原文 2009-11-25 14:29:29