当前位置: 首页 > 后端技术 > PHP

程序员找工作必备的PHP面试题-Day15

时间:2023-03-29 15:32:06 PHP

《PHP学习网》公众号每天都会分享一些面试题,找工作的朋友可以看看。1、写出人脸对象的三大特征和定义?封装继承多态封装:对象以外的部分不能自由访问对象内部数据响应效果不同2.用PHP程序写了5种以上获取文件扩展名的方法?//第一个方法substr(strrchr($file,'.'),1);//第二个方法substr($file,strrpos($file,'.')+1);//第三个方法end(explode('.',$file));//第四种方法$info=pathinfo($file);echo$info['extension'];//第五种方法pathinfo($file,PATHINFO_EXTENSION);3.写出下面PHP程序的执行结果输出为:556124.写出以下代码的输出:functionmyfunc($argument){echo$argunment+10;}$variable=10;echo"myfunc($variable)=".myfunc($variable);先调用函数输出,然后输出字符串输出为:20myfunc(10)=5.请尽量少用句子来实现验证输出Email地址的功能'/[0-9a-zA-Z_]+@[0-9a-zA-Z_]\.com|\.net|\.cn/ism'6.php是否存在安全问题?如果有请列举并说明。1、过滤用户输入的值,比如post、get传过来的值。示例:$_POST['用户'];不过滤,会引起一系列的麻烦2.禁用register_globals如果不禁止,则无法判断变量是否为预定义全局变量中的值示例:regiseter_globals=on$var将替换$_POST['var']3.防止SQL注入使用mysql_real_escape_string()作为用户输入的包装器以避免用户输入中的任何恶意SQL注入示例:$sql="selectcount(*)asctrfromuserswhereusername='".mysql_real__string($username)."'andpassword='".mysql_real_escape_string($pw)."'limit1";七、如何判断SQL语句的运行效率?如何优化查询SQL?使用explain查看SQL语句。最重要的是查看type和Extra的值,避免全表扫描。以下的不当操作也会引起全表扫描。避免在where子句中使用!=或<>运算符,并判断空值。全表扫描避免在where子句中使用orinnotinwhere子句中避免对字段使用函数操作不要写一些无意义的查询索引尽量不要太多8.一群猴子排成一圈,按1,2,...,n依次编号,然后从第一个数到第m个,把它踢出圈,再从它后面开始数,数到第m个,再把它踢出去,……如此循环下去,直到只剩下一只猴子,那只猴子就被称为国王。需要编程模拟这个过程,输入m,n,?输出最后一位国王的编号。这道题和击鼓传花一样,可以用队列的思想来实现//注意不要复制,有助于理解functionking($m,$n){//构造一个数组for($i=1;$i<$m+1;$i++){$arr[]=$i;}$i=0;//设置数组指针while(count($arr)>1){//遍历数组判断当前猴子是否为游戏序号,如果是则out,否则放在数组的末尾if(($i+1)%$n==0){unset($arr[$i]);}else{array_push($arr,$arr[$i]);//这一轮非出局的猴子把数组的末尾unset($arr[$i]);//delete}$i++;}return$arr;}var_dump(king(6,4));或publicstaticfunctionplay($first,$m,$k){//先找到下一个节点$tail=$第一的;while($tail->next!=$first)$tail=$tail->next;//从人数开始统计人数,必须把这个人作为头节点,找到它的下一个节点作为辅助节点。对于($i=0;$i<$k-1;$i++){$first=$first->next;$tail=$tail->下一个;}while($tail!=$first){//找到要删除的节点。对于($j=0;$j<$m-1;$j++){$first=$first->next;$tail=$tail->下一个;}//删除节点echo'children'.$first->no.'Removed'.'
';$first=$first->next;$tail->next=$first;}echo'Thekingis:'.$first->no;}}附题1.猎人带着一只狼、一只羊和一捆白菜过河,但他一次只能带三者中的一个过河。问:怎样过河才不让狼吃羊,不让羊吃白菜?先拿羊,再拿白菜,再拿狼。2.在一个小圆形烤箱里烤两个蛋糕。而且烤每一面需要的时间是半分钟,如何在一分半钟内烤出三块蛋糕呢?A蛋糕和B蛋糕烤半分钟,取出b换上C蛋糕另一面烤半分钟,然后取出A蛋糕换上C蛋糕的反面烤半分钟一分钟3.一只青蛙掉进了一个18英尺深的洞里那么,它每天白天爬上6英尺,晚上滑下3英尺。这样的速度能爬出井口多少天?5天第五天,白天爬出井口,最后可以扫下方二维码关注我公众号。目前正在更新基础面试题,稍后更新中高级面试题、redis、liunx面试题