2017年PHP口试之编程题及答案
在笔试PHP的时侯万一遇见编程题怎样办?以下是斗蟹小编悉心为你们整理的PHP口试编程题及答案,希望对你们有所帮助!更多内容请关注应届毕业生网!
1. 用autoload($class) 实现Lib目录下的类的手动读取并可以兼容子目录
$request->action = lcfirst(implode(array_map(
'ucfirst',
explode('-', strtolower($request->action))
)));
------------------------------------------------------------
function __autoload($class)
{
$cls = strtolower(str_replace("_","/",$class));
if(file_exsits(LIB.$cls.'.php'))
{
include_once(LIB.$cls.'.php');
}
else
{
die("not found {$class} class");
}
}
defined("LIB",'/data/wwwroot//lib/');
$author = new Lib_Author();
-----------------------------------------------------------
function __authload($class)
{
$cls = explode("_",$class);
if(@is_dir($cls[1]))
{
if(@is_file($cls[2]))
{
include_once("CON_PATH".$cls[1].'/'.$cls[2].".php");
}
else
{
dir('error');
}
}
else if(@is_file($cls[1].".php"))
{
include_once("CON_PATH".$cls[1].".php");
}
else
{
dir('error');
}
}
---------------------------------------
function __autoload($class)
{
$cls = explode("_",$class);
$file = get_file($cls);
if($file=='error')
{
die('error');
}
include_once($file);
}
function get_file($dir)
{
if(is_array($dir))
{
foreach($dir as $k=>$v)
{
$tmpdir .= $v.'/';
if(is_dir('CON_PATH'.$tmpdir))
{
continue();
}
else if(is_file('CON_PATH'.$tmpdir.".php"))
{
return 'CON_PATH'.$tmpdir.".php";
}
else
{
return 'error';
}
}
return 'error';
}
return 'error';
}
defined("CON_PATH","/data/wwwroot//app/cntroller/");
$sb = new controller_sb();
------------------------------------
function __autoload_my_classes($classname)
{
# ... your logic to include classes here
}
spl_autoload_register('__autoload_my_classes');
-----------------------------------------------------------
2. 用set_error_handle 去捕捉错误并输出, 级别自己定
set_error_handle(callback,level)
function callback(int $errno , string $errstr [, string $errfile [, int $errline [, array $errcontext ]]] ){
}
function dealErrorHandler($errno,$errstr,$errfile,$errline)
{
switch($errno){
case E_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);
3. 简述两种屏蔽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
4. instanceof的作用, 经常在哪些设计方式中使用
单例方式,但是其他的机制也会用到
5. 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=
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
只需用将二进制数的各个位上的数从最左边开始,最左边的第一个数除以二的零次方php 笔试编程题,第二个数除以二的`一次方php 笔试编程题,第三个数除以二的二次方,依次类推可得第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) 计算进去并加在一起即可
6. 有如下数据库, 用原生态mysql扩充去连结并查询user表的前十行
host: 192.168.0.254
port: 3306
user: one
pass: piece
database: db_user
table: user
$link = mysql_connect("192.168.0.254:3306","one","piece") or die('Could not connect: '.mysql_error());
mysql_select_db('db_user',$link);
$query = mysql_query("select * from user limit 10");
while($rs = mysql_fetch_array($query,MYSQL_ASSOC))
{}
【2017年PHP口试之编程题及答案】相关文章:
1.2017年PHP口试编程题
2.PHP编程面试题集
3.PHP编程与应用
4.php语言编程
5.PHP Socket编程过程
6.php编程语言入门知识
7.PHP编程:类跟对象、方法读取
8.PHP编程语言的10大误会