程序员找工作必备 PHP 基础面试题(二)

1、我们知道 autoload 可以实现类的自动载入,如何把一个类 splDemo 的方法 autoload 注册成为一个__autoload (关键词:spl)

abstract class splDemo {

    function __autoload($class){

        // ....

    }

}

2、下面可以捕获异常吗?如何实现捕获。(关键词:set_error_handler ErrorExcpetion)

try {

    //读取不存在的文件

    file_get_contents('/home/not-exists.file');

} catch (Exception $e){

    echo $e->getMessage();

}

3、根据 span value 的值,排序 li,可以使用 jQuery

<ul>

    <li><span value="3">三</span></li>

    <li><span value="1">一</span></li>

    <li><span value="2">二</span></li>

</ul>

<script>

        $(function(){

                var arr=[];

                $('span').each(function(i){

                    arr[arr.length]=$(this).attr('value')+'-'+$(this).html();

                });

                //倒叙排序

                /*function paixu(num1,num2){

                    if(num1>num2){

                        return -1;

                    }else if(num1==num2){

                        return 0;

                    }else{

                        return 1;

                    }

                }

                arr.sort(paixu);*/

                arr.sort();

                    $('li').remove();

                for(var i=0;i<arr.length;i++){//字符串切割-

$('ul').append('<li><span value="'+arr[i]+'">'+arr[i].substr(arr[i].indexOf('-',2))+'</span></li>');

                }

            });

</script>

4、分别读取 div 节点 attr 属性值

  1) <div attr = "abcd" ></div> // 输出abcd

  2) <div attr="abcd\">"></div> // 输出abcd">

javacript 答案:alert($("div:eq(1)").attr("attr"));

5、尽可能多的写出 php 处理字符串函数,并写出他们对应的作用。

Strops () 返回某个字符串在一字符串中首先出现的位置

Strstr () 返回一个字符串在另一个字符串中的第一次出现

Substr()截取字符串

Substr()截取字符串

trim () 删除字符串两端的空格或其他预定义字符

str_pad () 把字符串填充为指定的长度

str_repeat () 重复使用指定字符串

str_split () 把字符串分割到数组中

strrev () 反转字符串

str_shuffle () 随机地打乱字符串中所有字符

number_format () 通过千位分组来格式化数字

strtolower () 字符串转为小写

strtoupper () 字符串转为大写

strcasecmp () 不区分大小写比较两字符串

6、语句 include 和 require 的区别是什么?为避免多次包含同意文件,可用?语句来代替他们?

Include 在包含文件时若出错,仅报出一条错误信息,代码继续执行Require 在包含文件时若出错,报出错误信息的同时代码将不会往下执行避免多次包含同一文件,可用 include_once 或者 require_once 语句来代替他们

(1) include () 在执行文件时每次都要进行读取和评估;require () 文件只处理一次 (实际上文件内容替换了 require () 语句)

(2) require () 通常放在 PHP 脚本程序的最前面 include () 的使用和 require () 一样,一般放在流程控制的处理区段中,PHP 脚本文件读到 include () 语句时,才将它包含的文件读进来,这种方式,可以把程序执行时的流程简单化

(3) require () 和 include () 语句是语言结构,不是真正的函数,可以像 PHP 的其他语言结构一样

(4) require () 包含文件失败,停止执行,给出错误 (致命的);

(5) include () 常用于动态包含。通常是自动加载的文件,即使加载出错,整个程序还是继续执行一个页面声明,另一个页面调用包函文件失败,继续向下执行,返回一条警告

(6) include_once () 和 require_once () 语句也是在脚本执行期间包括并运行指定文件,与 include () require () 唯一的区别是如果文件中的代码已经被包括了,则不会再次包括.

7、使用 PHP 写一段简单 SQL 语句实现增删改查

主机 ip:192.168.1.222

数据库用户名:root

数据库密码:admin123

表名 User

name tel content date

张三 13333663366 大专毕业 2006-10-11

张三 13612312331 本科毕业 2006-10-15

张四 021-55665566 中专毕业 2006-10-15

答案:

a、连接数据库,向user表增加一行数据。

姓名:刘五,电话:18811002233,学历:本科,日期:当下日期

Insert into User (name,tel,content,date)values(‘刘五’,’ 18811002233’,’本科’,time())

b、删除姓名为里斯的用户所有信息。

Delete from user where name=”里斯”

c、更新手机号码为1333663366用户的学历为“本科”

Update user set ‘content’=’本科’where tel=‘1333663366’

d、查处所有姓名为“张三”的内容并打印出来。

$mysql_db=mysql_connect("local","root","pass");

  @mysql_select_db("DB",$mysql_db);

    $result = mysql_query("SELECT * FROM `user` WHERE name='张三'");

    while($rs = mysql_fetch_array($result)){

      echo $rs["tel"].$rs["content"].$rs["date"];

    }

8、如何修改 SESSION 的生存时间。

方法一:

修改 php.ini 的 session_gc_maxlefttime=9999;

方法二:

$savePath = "./session_save_dir/";

$lifeTime = 小时 * 秒;

session_save_path($savePath);

session_set_cookie_params($lifeTime);

session_start();

方法三:setcookie () and session_set_cookie_params ($lifeTime);

9、用 PHP 写出显示客户端 IP 与服务器 IP 的代码

答:打印客户端 IP:

echo$_SERVER[‘REMOTE_ADDR’];

打印服务器 IP:

echo $_SERVER[‘SERVER_ADDR’];

程序员找工作必备 PHP 基础面试题(一)

面试题系列:

2020最新PHP面试题(附带答案)

分享一波腾讯PHP面试题

2019年PHP最新面试题(含答案)

Redis 高级面试题 学会这些还怕进不了大厂?

面试官三年经验PHP程序员知识点汇总

php面试题之PHP核心技术

掌握 Redis这些 知识点,面试官一定觉得你很 NB

当面试官问你:如何进行性能优化?

PHP 经典面试题集

更多学习内容请访问:

腾讯T3-T4标准精品PHP架构师教程目录大全,只要你看完保证薪资上升一个台阶(持续更新)​

以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的官方群点击此处

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容