- 问:此脚本执行输出什么,如果出现错误如何拦截并通知管理员?
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
请写出两个以上支持回调处理的PHP函数,并自己实现一个支持回调的函数。
call_user_func()
call_user_func_array()
array_walk()
https://www.cnblogs.com/zhenbianshu/p/6063340.html请写出两种获取指定文件夹下所有文件的方法(思路或代码)
- 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 . "<br>";
}
}
}
}
- 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."<br>";
}
}
}
closedir($dh);
}
- 写出三种截取文件名后缀的方法或者函数。(内置或者自定义)
字符截取、数组分割、路径函数pathinfo
https://blog.csdn.net/zls986992484/article/details/52629684 - 写出一段含有安全性问题的PHP代码,如sql注入,对于注入问题你如何思考的?
$id = $_GET['id'];
$sql = "SELECT * FROM `notice` WHERE `id` = $id";
- 请写出for while foreach三者的差异
- foreach用于循环遍历数组
- for 用于预先知道脚本需要运行的次数的情况
- while 条件为真一直执行
- 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));
- 如何在不修改类文件的情况下,获取类对应私有属性的值?
反射