4399php面试,PHP面试之编程题及答案

2017年PHP口试之编程题及答案

在笔试PHP的时侯万一遇见编程题怎样办?以下是斗蟹小编悉心为你们整理的PHP口试编程题及答案,希望对你们有所帮助!更多内容请关注应届毕业生网!

1604211037901_0.jpeg

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大误会

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值