PHP面向对象与内置能力
PHP 中常见的魔术方法有哪些?
常见魔术方法包括:
__construct()__destruct()__get()__set()__isset()__unset()__call()__callStatic()__toString()__invoke()__sleep()__wakeup()__clone()
PHP 5 的构造函数和析构函数怎么写?
class Demo {
public function __construct() {}
public function __destruct() {}
}PHP 5 的权限控制修饰符有哪些?
publicprotectedprivate
它们用于控制属性和方法的可见范围。
如何声明类、实例化对象以及访问类属性?
class MyClass {
public $name = 'php';
}
$obj = new MyClass();
echo $obj->name;
$obj->name = 'bat';autoload 的机制是什么?
当代码使用某个尚未加载的类时,PHP 会尝试触发自动加载机制。
常见方式:
spl_autoload_register()- Composer 自动加载
核心思想是:
- 根据类名推导文件路径。
- 自动
require对应文件。 - 避免手动到处
include/require。
PHP 的协程是什么?有什么用途?
协程可以理解为用户态的轻量级执行单元,切换成本比线程低很多。
常见用途:
- 高并发网络请求
- 异步 I/O
- 降低阻塞等待带来的线程资源浪费
在 PHP 里常见于:
- Swoole
- OpenSwoole
- Fibers(PHP 8.1+)
如何获取指定文件夹下的所有文件?
常见方法至少有两类:
scandir()递归遍历。opendir()/readdir()遍历目录。
如果要写得更现代一些,还可以用 SPL 迭代器。
mysql_fetch_row() 和 mysql_fetch_array() 有什么区别?
旧版扩展里:
mysql_fetch_row()返回纯数字索引数组。mysql_fetch_array()可以返回数字索引、关联索引或两者都有。
不过这些旧 API 已废弃,现代项目中通常使用 mysqli 或 PDO。
请谈谈你对 MVC 的理解。
MVC 是一种分层思想:
Model:处理数据和业务逻辑。View:负责页面展示。Controller:协调请求、调度模型与视图。
核心价值是关注点分离,便于维护和扩展。
评论
使用 GitHub 账号即可参与加载较慢?可 直接前往 GitHub Discussions 查看与参与。