您的位置 首页 php

PHP基础面试题 – 第五天

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

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(所有者)。 另外,不能设置 SUID、SGID 和 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语句块捕获并导致致命错误。

文章来源:智云一二三科技

文章标题:PHP基础面试题 – 第五天

文章地址:https://www.zhihuclub.com/151681.shtml

关于作者: 智云科技

热门文章

网站地图