搜尋
首頁後端開發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
在Laravel中使用Flash會話數據在Laravel中使用Flash會話數據Mar 12, 2025 pm 05:08 PM

Laravel使用其直觀的閃存方法簡化了處理臨時會話數據。這非常適合在您的應用程序中顯示簡短的消息,警報或通知。 默認情況下,數據僅針對後續請求: $請求 -

PHP記錄:PHP日誌分析的最佳實踐PHP記錄:PHP日誌分析的最佳實踐Mar 10, 2025 pm 02:32 PM

PHP日誌記錄對於監視和調試Web應用程序以及捕獲關鍵事件,錯誤和運行時行為至關重要。它為系統性能提供了寶貴的見解,有助於識別問題並支持更快的故障排除

php中的捲曲:如何在REST API中使用PHP捲曲擴展php中的捲曲:如何在REST API中使用PHP捲曲擴展Mar 14, 2025 am 11:42 AM

PHP客戶端URL(curl)擴展是開發人員的強大工具,可以與遠程服務器和REST API無縫交互。通過利用Libcurl(備受尊敬的多協議文件傳輸庫),PHP curl促進了有效的執行

簡化的HTTP響應在Laravel測試中模擬了簡化的HTTP響應在Laravel測試中模擬了Mar 12, 2025 pm 05:09 PM

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显著减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

在Codecanyon上的12個最佳PHP聊天腳本在Codecanyon上的12個最佳PHP聊天腳本Mar 13, 2025 pm 12:08 PM

您是否想為客戶最緊迫的問題提供實時的即時解決方案? 實時聊天使您可以與客戶進行實時對話,並立即解決他們的問題。它允許您為您的自定義提供更快的服務

解釋PHP中晚期靜態結合的概念。解釋PHP中晚期靜態結合的概念。Mar 21, 2025 pm 01:33 PM

文章討論了PHP 5.3中介紹的PHP中的晚期靜態結合(LSB),允許靜態方法的運行時間分辨率調用以更靈活的繼承。 LSB的實用應用和潛在的觸摸

自定義/擴展框架:如何添加自定義功能。自定義/擴展框架:如何添加自定義功能。Mar 28, 2025 pm 05:12 PM

本文討論了將自定義功能添加到框架上,專注於理解體系結構,識別擴展點以及集成和調試的最佳實踐。

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脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

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

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

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

SublimeText3 英文版

SublimeText3 英文版

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

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),