USER_ERROR:
echo "error [$errno] $errstr fatal error on line $errline in file $errfile";
break;
case E_USER_WARNING:
echo "my warning [$errno] $errstr":
break;
case E_USER_NOTICE:
echo "my notice[$errno] $errstr";
break;
default:
echo "unkonwn error type :[$errno] $errstr";
break;
}
}
set_erro_handler(dealErrorHandler);
trigger_error("notice", E_USER_NOTICE);
trigger_error("warning", E_USER_WARNING);
trigger_error("error", E_USER_ERROR);
13. 简述两种屏蔽php
程序的notice警告的方法
初始化变量,文件开始设置错误级别或者修改php.ini 设置error_reporting
set_error_handler 和 @抑制错误
1.在
程序中添加:error_reporting (E_ALL & ~E_NOTICE);
2.或者修改php.ini中的:error_reporting = E_ALL
改为:error_reporting = E_ALL & ~E_NOTICE
3.error_reporting(0);或者修改php.inidisplay_errors=Off
14. instanceof的作用, 经常在什么设计模式中使用
单例模式,但是其他的模式也会用到
15. 1023用二进制表示, 并简述计算过程
10-2
1023%2=1
511%2 =1
255%2 =1
127%2 =1
63%2 =1
31%2 =1
15%2 =1
7%2 =1
3%2 =1
1%2 =1
0 =0
-------------------------------------------
1023
2^9=<N<2^10
511
k=9
10 9 8 7 6 5 4 3 2 1
1 1 1 1 1 1 1 1 1 1
----------------------
1023 1
1023-1/2=511 1
511-1/2=255 1
255-1/2=127 1
127-1/2=63 1
63-1/2=31 1
31-1/2=15 1
15-1/2=7 1
7-1/2=3 1
3-1/2=1 1
-----------------------------------------------
2-10
只需用将二进制数的各个位上的数从最右边开始,最右边的第一个数乘以二的零次方,第二个数乘以二的一次方,第三个数乘以二的二次方,依次类推可得第n个数乘以二的(n-1)次方,然后把得到的结果相加即可
例如:110011=1*2^0+1*2^1+0*2^2+0*2^3+1*2^4+1*2^5=51
这也可以算是一个公式就是An*2^(n-1) An表示二进制数最右边开始的第n个数,
将第一项第二项第三项一直到第n项用式子An*2^(n-1) 计算出来并加在一起即可
16. 下面php
程序输出的内容是什么? 为什么?
<?php
$str = "aa\tbb\tcc";
@list($a, $b, $c) = explode(''\t'', $str);
echo $a,$b,$c;
?>
aabbcc;//''\t''不会以\t切割字符串,explode之后申城一个array(0=>"aa\tbb\tcc")所以。。。,''\t''换成"\t"就被切割
17. include和require 分别返回什么错误级别
include会系统警告并继续执行,require会发出系统警告但是会引致致命错误令脚本终止运行
18. 现有一个函数, 有不确定多少个的参数(可能有5个也可能有50个), 如何去定义这个函数
方法一: 不借助php内置函数
方法二: 提示func_num_args() func_get_arg() unc_get_args()
function param()
{
$numargs = func_num_args();
echo "Number of arguments: $numargs<br />\n";
if ($numargs >= 2) {
echo "Second argument is: " . func_get_arg(1) . "<br />\n";
}
$arg_list = func_get_args();
for ($i = 0; $i < $numargs; $i++) {
echo "Argument $i is: " . $arg_list[$i] . "<br />\n";
}
}
param(1,2,3,4,5);
/**
2 * 例子写完后,本来认为完事了,结果遇到有人问call_user_func_array(),看了一下手册
3 * 原来,我上面的那个test函数还可以精简成如下的例子,
4 */
5 function otest1 ($a)
6 {
7 echo( ''一个参数'' );
8 }
9
10 function otest2 ( $a,$b)
11 {
12 echo( ''二个参数'' );
13 }
14
15 function otest3 ( $a,$b,$c)
16 {
17 echo( ''三个啦'' );
18 }
19
20 function otest ()
21 {
22 $args=func_get_args();
23 $num=func_num_args();
24 call_user_func_array( ''ot