搜尋
首頁後端開發php教程PHP 面试问哪些问题可以比较准确的反映出应聘者的开发水平?

不要泛泛而谈的。

回复内容:

Update: 最后加上了基础题分析说明

两年多之后,更新一下新的面试题.

基础题

场景:


你入职了一家新公司.

上班第一天,接待人给你安排好了座位,然后拉过来一台没拆封的新电脑.

你把电脑连接好之后,按下电源....


好吧,这真是一台新电脑,里边竟然内置了个DOS系统!!


你找同事拿来了操作系统光盘/U盘(这个无所谓了).半个小时后,操作系统安装好了.


  1. 第一件事就是要把LAMP环境搭建起来,这样才好工作.简述搭建LAMP环境过程中的注意点.


  2. LMAP环境搭建好之后,你拿到了第一个开发任务.给公司内部开发一个通用审批系统.公司内部有一个DNS服务器,上边已经配好了这个系统的域名,叫approving.great-company.com,并指向了你本机的ip. 你尝试访问了一下approving.great-company.com ,出现了apache经典的It Works页面,域名是生效的.你打算在桌面新建一个目录叫approving并在这个目录下完成这个系统的开发.如何配置apache使得访问approving.great-company.com的时候能够打开approving/index.php


  3. apache配置好之后,你开始了开发工作.这时,同事给了你一份代码,是另一个人写了一半的通用审批系统.这下好多了,你不用从零开始写代码了.你翻看了他的代码,发现逻辑是这样的: 用户使用email和密码登录这个系统后,程序把这个用户的id放到了session里.通过$_SESSION['uid']就可以拿到登录用户id,然后去数据库里就能把这个用户的个人信息(比如叫什么名字,是哪个部门的)拿到了.接着,你找到了这个通用审批系统主要功能点的代码

<span class="nt"><form</span> <span class="na">action=</span><span class="s">"new-approving.php"</span> <span class="na">method=</span><span class="s">"post"</span><span class="nt">></span>
    审批事项: <span class="nt"><input</span> <span class="na">type=</span><span class="s">"text"</span> <span class="na">name=</span><span class="s">"title"</span> <span class="nt">/></span>
    详细描述: <span class="nt"><textarea</span> <span class="na">name=</span><span class="s">"details"</span><span class="nt">></textarea></span>
    <span class="nt"><input</span> <span class="na">type=</span><span class="s">"submit"</span> <span class="na">value=</span><span class="s">"提交"</span> <span class="nt">/></span>
<span class="nt"></form></span>
经验所谈,禁止转载!
上面的回答可能仅仅是针对初级程序员制定的,我讲讲各个层级的吧!

首先我觉得做一份笔试或机试是很重要的,不一定非得全部作对,能看到很多交谈中看不到的问题!

既然是PHP程序员得围绕PHP各方面问问
  • PHP
    基础:
    单引号和双引号区别?
    GET和POST的FORM表单的Action有什么区别?
    Session工作原理
    如何取出数组最后一个值?
    Git分支合并
    翻转字符串"example"
    打印出2014-09-23 23:08:01的时间戳
    Debug方法
    Composer用法

    进阶:
    框架各部分了解程度(路由、设计规则、数据层包装、视图层、可扩展等)
    面向对象的了解程度(静态方法、变量可用范围、抽象类、接口、继承、克隆、魔术方法等)
    命名空间
    测试用例
    异常处理
    缓存数据(memcache、redis、模板缓存、apc等各类缓存)
    正则测试

    高级:
    PHP SPL
    设计模式(挑选两个,比如工厂、单例讲讲)
    排序算法(挑选两个,比如冒泡排序、插入排序讲讲应用点)
    加密算法(挑选两个,比如sha、crc32讲讲应用点以及区别)
    测试驱动开发
    敏捷开发思考
    最优开发模式
    疑难问题解决方法

  • 安全
    分别讲讲XSS、CSRF原理和防范
    SQL注入防范
    上传应该注意哪些问题
    变量覆盖问题
    危险函数该如何处理
    服务基线
    安全域

  • 数据库
    事务处理
    各类锁处理
    分库、主从与离线
    左连接、右连接、交叉连接
    SQL优化
    不常用SQL函数应用
    曾经遇到的坑


  • Linux
    挑选两个命令,比如find、awk用法
    文件排序方法(比如取某文件夹最后修改的文件并将大小显示为以M为单位的)
    python、shell等脚本程度

    写的比较仓促,有漏掉的再补充!

    上面主要侧重技术层面,其实很多技术对于一些人来说学起来很快的,所以还是人聪明或学习能力强最重要。
”你独立搞定过什么,拿证据来“ php 的hashtable
数据缓存
数据库优化 booklist.
Talk about the web security what you know.
Do the DRY in your codes since? if yes,very good,tell me.
Tell me how do you debug your code.The more the better. 1、先明白你要做什么样的事情,然后再考虑找什么样的人。
2、找合适的,不一定技术是最好的,这一点太重要 能在多大程度上挖掘出应聘者的开发水平跟面试官的水平也是有很大的关系的, 你的水平越高, 就可以从简单的开始问起, 难度慢慢加大, 直到对方招架不住, 当然这里面要把握好度, 因为如果你真的准备聘用这个人的话, 给人留下咄咄逼人的感觉也不太好的 世界最好的语言是什么?
答PHP的走人,眼界太窄
不答php的也走人,干一行爱一行 直接给个可以联网的电脑写代码吧,能搜索出来也算。题目可以很简单,比如在pdo的基础上封装个最简单的orm,类或者函数都可以。基本上合格的可以在10-20分钟内完成,给半小时好了。很吃惊的是脱离了框架70%的人连这都不会写。能又快又好完成的,可以在这基础上深入下,再给半小时,要求改写成读写分离的(主库读写皆可,从库只读,读请求均匀分离)。
代码实现里,用绑定的方式避免注入,这是最基础的不用多说了吧? 这个问题主要在于你想招什么。是“php”程序员,还是php“程序员”。看你着重哪个了。
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
PHP電子郵件:分步發送指南PHP電子郵件:分步發送指南May 09, 2025 am 12:14 AM

phpisusedforsendendemailsduetoitsignegrationwithservermailservicesand andexternalsmtpproviders,自動化intifications andMarketingCampaigns.1)設置設置yourphpenvenvironnvironnvironmentwithaweberswithawebserverserververandphp,確保themailfunctionisenabled.2)useabasicscruct

如何通過PHP發送電子郵件:示例和代碼如何通過PHP發送電子郵件:示例和代碼May 09, 2025 am 12:13 AM

發送電子郵件的最佳方法是使用PHPMailer庫。 1)使用mail()函數簡單但不可靠,可能導致郵件進入垃圾郵件或無法送達。 2)PHPMailer提供更好的控制和可靠性,支持HTML郵件、附件和SMTP認證。 3)確保正確配置SMTP設置並使用加密(如STARTTLS或SSL/TLS)以增強安全性。 4)對於大量郵件,考慮使用郵件隊列系統來優化性能。

高級PHP電子郵件:自定義標題和功能高級PHP電子郵件:自定義標題和功能May 09, 2025 am 12:13 AM

CustomHeadersheadersandAdvancedFeaturesInphpeMailenHanceFunctionalityAndreliability.1)CustomHeadersheadersheadersaddmetadatatatatataatafortrackingandCategorization.2)htmlemailsallowformattingandttinganditive.3)attachmentscanmentscanmentscanbesmentscanbestmentscanbesentscanbesentingslibrarieslibrarieslibrariesliblarikelikephpmailer.4)smtppapapairatienticationaltication enterticationallimpr

使用PHP和SMTP發送電子郵件的指南使用PHP和SMTP發送電子郵件的指南May 09, 2025 am 12:06 AM

使用PHP和SMTP發送郵件可以通過PHPMailer庫實現。 1)安裝並配置PHPMailer,2)設置SMTP服務器細節,3)定義郵件內容,4)發送郵件並處理錯誤。使用此方法可以確保郵件的可靠性和安全性。

使用PHP發送電子郵件的最佳方法是什麼?使用PHP發送電子郵件的最佳方法是什麼?May 08, 2025 am 12:21 AM

ThebestapproachforsendingemailsinPHPisusingthePHPMailerlibraryduetoitsreliability,featurerichness,andeaseofuse.PHPMailersupportsSMTP,providesdetailederrorhandling,allowssendingHTMLandplaintextemails,supportsattachments,andenhancessecurity.Foroptimalu

PHP中依賴注入的最佳實踐PHP中依賴注入的最佳實踐May 08, 2025 am 12:21 AM

使用依賴注入(DI)的原因是它促進了代碼的松耦合、可測試性和可維護性。 1)使用構造函數注入依賴,2)避免使用服務定位器,3)利用依賴注入容器管理依賴,4)通過注入依賴提高測試性,5)避免過度注入依賴,6)考慮DI對性能的影響。

PHP性能調整技巧和技巧PHP性能調整技巧和技巧May 08, 2025 am 12:20 AM

phpperformancetuningiscialbecapeitenhancesspeedandeffice,whatevitalforwebapplications.1)cachingwithapcureduccureducesdatabaseloadprovesrovessetimes.2)優化

PHP電子郵件安全性:發送電子郵件的最佳實踐PHP電子郵件安全性:發送電子郵件的最佳實踐May 08, 2025 am 12:16 AM

ThebestpracticesforsendingemailssecurelyinPHPinclude:1)UsingsecureconfigurationswithSMTPandSTARTTLSencryption,2)Validatingandsanitizinginputstopreventinjectionattacks,3)EncryptingsensitivedatawithinemailsusingOpenSSL,4)Properlyhandlingemailheaderstoa

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。