1. 问:此脚本执行输出什么,如果出现错误如何拦截并通知管理员?
error_reporting(E_ALL);
try {
    call_not_exist_method(); // 调用一个不存在的函数
} catch (Exception $e) {

}

分析:主要考察PHP错误和异常处理机制,还有set_error_handler()、register_shutdown_function()、set_exception_handler()的应用。
这里会产生一个Fatal error,脚本终止,try-catch不能捕获,可以通过register_shutdown_function()函数捕获错误,https://www.cnblogs.com/zyf-zhaoyafei/p/6928149.html

  1. 请写出两个以上支持回调处理的PHP函数,并自己实现一个支持回调的函数。
    call_user_func()
    call_user_func_array()
    array_walk()
    https://www.cnblogs.com/zhenbianshu/p/6063340.html

  2. 请写出两种获取指定文件夹下所有文件的方法(思路或代码)

  • scandir()
function getOpenFile($dir = "")
{
    if(!is_dir($dir)) return false;
    $file = scandir($dir);
    foreach ($file as $key => $value) {
        if($value != '.' && $value != '..'){
            if(is_dir($dir . DIRECTORY_SEPARATOR . $value)){
                getOpenFile($dir . DIRECTORY_SEPARATOR . $value);
            }else{
                echo $dir . DIRECTORY_SEPARATOR . $value . "
"; } } } }
  • opendir()、readdir()、closedir()
function getFile($dir = "")
{
    if(!is_dir($dir)) return false;
    $dh = opendir($dir);
    while (($file = readdir($dh)) !== false) {
        $temp = $dir . DIRECTORY_SEPARATOR . $file;
        if(is_dir($temp) && $file != '.' && $file != '..'){
            getFile($temp);
        }else{
            if($file != '.' && $file != '..'){
                echo $temp."
"; } } } closedir($dh); }
  1. 写出三种截取文件名后缀的方法或者函数。(内置或者自定义)
    字符截取、数组分割、路径函数pathinfo
    https://blog.csdn.net/zls986992484/article/details/52629684
  2. 写出一段含有安全性问题的PHP代码,如sql注入,对于注入问题你如何思考的?
$id = $_GET['id'];
$sql = "SELECT * FROM `notice` WHERE `id` = $id";
  1. 请写出for while foreach三者的差异
  • foreach用于循环遍历数组
  • for 用于预先知道脚本需要运行的次数的情况
  • while 条件为真一直执行
  1. php如何实现不用自带函数给客户端下发cookie,对于分布式系统来说如何保存session?

可以通过header设置cookie,php的setCookie也是对header的封装

header("Set-Cookie:name=zhangsan; path=/; expires=".gmstrftime("%A,
 %d-%b-%Y %H:%M:%S GMT",time()+9600));
  1. 如何在不修改类文件的情况下,获取类对应私有属性的值?
    反射

你可能感兴趣的:(一)