进制和位运算
为了告诉php是八进制,在数字前面加0.
echo 123, '<br />';
//8进制,前面加0代表八进制
echo 0123;
//16进制,前面加0x代表16进制
echo 0x123;
//2进制,php目前不支持直接表示
/*
10进制 2进制
5 0000 0101
255 1111 1111
-1 1111 1111
像上面8个1,到底是理解成255,还是理解成-1
这个取决于程序,
比如在mysql中,int则理解成-1,unsigned int 则理解成255
*/
位运算
是针对字节上的位来运算,把位的0/1当成假/真,针对每个位上的逻辑运算,就是位运算
10进制 2进制
5 0000 0101
12 0000 1100
& ----------------
0000 0100
| ----------------
0000 1101
<?php
//位运算
echo 5&12, '<br />'; // 4
echo 5|12, '<br />'; // 13
echo 5^12, '<br />'; //异或
echo ~5, '<br />'; //1111 1010 = 250,然后因为首位是1,所以是负数,反向旋转256回去,到负数段,所以是-6
//利用位运算的左移使整数增大2倍,n倍为n进制
$a = 3;
echo $a << 1, '<br />';
echo $a << 2, '<br />';
echo $a >> 1, '<br />';
echo 8 >> 2;
?>
PHP脚本的错误,分多个等级,如致命错误,Notice,warning,N多级,如何方便的设置报错级别
PHP把不同等级的级别,用数字来表示,比如:
1 E_ERROR(integer) 致命的运行时错误。这类错误一般是不可回复的情况,例如内存分配导致的问题。后果是导致脚本终止。
2 E_WARNING(integer) 运行时警告(非致命错误)。仅提供提示信息,但是脚本不会终止运行。
<?php
//位运算与PHP错误报告设置
//设置报告所有错误
// error_reporting(E_ALL); //报告所有错误,默认值
error_reporting(0); //不报告错误
echo $a;
include('a.php');
//想报所有错误,除了notice的错误
// error_reporting(E_ALL ^ E_NOTICE);
error_reporting(E_ALL & ~E_NOTICE);
echo E_NOTICE; //notice的值
echo $a;
?>