程序员找工作必备 PHP 基础面试题 - 第五天

PHP学习网接下来每天会分享一些面试题给大家,多做题,多熟悉基础,面试时更有信心,同时大家还可以关注php学习网公众号查看更多的面试题。

1、列出五种以上你使用过的PHP 的扩展的名称 (提示:常用的PHP扩展 , 如 GD 扩展)

PDO、mysql、sybase、oracle、memcache、zlib

2、写一个函数,用冒泡法实现排序,输入参数为一个数组

function mysort($arr){
for($i=0;$i<strlen($arr);$i++)
{
  for($j=$i;$j<strlen($arr);$j++)
  {
    if($arr[i]>$arr[j])
    {
      $temp = $arr[i];
      $arr[i] = $arr[j];
      $arr[j] = $temp;
    }
  }
}
}

3、请说明 在php.ini 中safe_mode 开启之后对于PHP系统函数的影响

chmod() mkdir() touch() chown() chgrp() chdir() fopen() rmdir() copy() link()
exec() 

chmod() 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID(所有者)。 另外,不能设置 SUIDSGID 和 sticky bits
mkdir() 检查被操作的目录是否与正在执行的脚本有相同的 UID(所有者)。
touch() 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID(所有者)。 检查被操作的目录是否与正在执行的脚本有相同的 UID(所有者)。
chown() 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID(所有者)。
chgrp() 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID(所有者)。
chdir() 检查被操作的目录是否与正在执行的脚本有相同的 UID(所有者)。
fopen() 检查被操作的目录是否与正在执行的脚本有相同的 UID(所有者)。
rmdir() 检查被操作的目录是否与正在执行的脚本有相同的 UID(所有者)。
copy() 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID(所有者)。 检查被操作的目录是否与正在执行的脚本有相同的 UID(所有者)。 (on source and target )
link() 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID(所有者)。 检查被操作的目录是否与正在执行的脚本有相同的 UID(所有者)。 (注意:仅测试 target)
exec() 只能在 safe_mode_exec_dir 设置的目录下进行执行操作。基于某些原因,目前不能在可执行对象的路径中使用 ..escapeshellcmd() 将被作用于此函数的参数上。

####4、你用什么方法检查PHP脚本的执行效率(通常是脚本执行时间)和数据库SQL的效率(通常是数据库Query时间),并定位和分析脚本执行和数据库查询的瓶颈所在?

1.脚本执行时间,启用xdebug,使用WinCacheGrind分析。
2.数据库查询,mysql使用EXPLAIN分析查询,启用slow query log记录慢查询。
3, xdebug统计函数执行次数和具体时间进行分析。
4, 在线系统用strace跟踪相关进程的具体系统调用。

5、试简述php5 中 autoload 机制是如何自动加载类的

PHP引擎试图实例化一个未知类的操作时,会调用__autoload()方法,在PHP出错失败前有了最后一个机会加载所需的类。
因此,上面的这段代 码执行时,PHP引擎实际上替我们自动执行了一次__autoload方法,将User.class.php这个文件包含进来。 
在__autoload函数中抛出的异常不能被catch语句块捕获并导致致命错误。

最后各位可以扫下方二维码关注我公众号,目前我正在更新基础面试题,之后会更新中高级、redis、liunx面试题

本作品采用《CC 协议》,转载必须注明作者和本文链接
和PHP学习网一起努力学习
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!