程序员找工作必备 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语句块捕获并导致致命错误。

关注公众号,查看更多面试题

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

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