接口与抽象类
发表于|更新于|PHP
|总字数:85|阅读时长:1分钟|浏览量:
| 区别 | 接口类 | 抽象类 |
|---|---|---|
| 条件 | 必须实现接口类中所有的公共方法 | 必须定义父类中所有的抽象方法 |
| 关键字 | interface | abstract |
| 方式 | 实现implements | 继承extends |
| 特性 | 实现多个接口 | 只能继承一个抽象类 |
| 修饰符 | public 公有的 | 保持一致或更为宽泛 |
文章作者: Michael
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Michael's Blog!
相关推荐

2023-03-05
instanceof 与 method_exists
instanceof與method_exists的用法區別。參考StackoverFlow instanceof為保留關鍵字,用於檢查對象是否屬於某個類。如果對象是類的實例,則比較返回true,否則返回 false。通常我們理解為 類型運算符兩邊為對象或類進行比較,等同於===;所以,與CommonService的判斷比較也是可取的。 method_exists為內置函數,用於檢查對象或類是否具有指定的方法。通常我們理解為 對象或類中是否存在指定方法,返回值也為 true 或 false。 結論:倆者的比較維度不同。 比较项 instanceof method_exists 性质 关键保留字 内置函数 用途 检查对象是否属于某一个类 检查对象或类是否具有指定的方法 返回 true 或 false true 或 false instanceof不会告诉你传递的对象是否包含该方法,只告诉你它是那个方法的一个实例。 dyld[43914]: Library not loaded: /opt/homebrew/opt...

2019-03-20
PHP5与PHP7
改进的性能 - 将 PHPNG 代码合并到 PHP7 中,速度是 PHP 5 的两倍。 降低内存消耗 - 优化的 PHP 7 使用较少的资源。 标量类型声明 - 现在可以强制执行参数和返回类型。 一致的 64 位支持 - 对 64 位体系结构机器的一致支持。 改进了异常层次 - 异常层次得到了改进 许多致命的错误转换为例外 - 例外范围增加,涵盖许多致命的错误转换为例外。 安全随机数发生器 - 增加新的安全随机数发生器 API。 已弃用的 SAPI 和扩展已删除 - 各种旧的和不受支持的 SAPI 和扩展从最新版本中删除。 空合并运算符(?) - 添加了新的空合并运算符。 返回和标量类型声明 - 支持所添加的返回类型和参数类型。 匿名类 - 支持匿名添加。 零成本断言 - 支持零成本断言增加。

2021-04-15
require 与 include 的区别(含 _once)
一句话 require 失败 → Fatal Error(脚本停);include 失败 → Warning(脚本继续)。加 _once 后缀都能保证「只加载一次」。 核心对比 语句 找不到/解析失败 适用 require E_COMPILE_ERROR,脚本中止 必须加载的核心文件(配置、入口) require_once 同上,且多次调用只执行一次 函数/类定义(防重复声明报错) include E_WARNING,继续执行 可选模板片段(如可选侧栏) include_once 同上,且只加载一次 可选函数库 123require 'config.php'; // 没了直接死,应该死include 'sidebar.html'; // 没了页面少个边栏,能接受require_once 'User.php'; // class User 二次 require 会报 "Cannot redeclare" 一个最小验证1234// a....

2019-03-20
Opcache
一、为什么需要 OPcachePHP 是脚本语言,每次请求默认都要走完整流程: 123.php 源码 → 词法分析(Lexer) → 语法分析(Parser) → 编译(Compiler) → opcode → Zend VM 执行 │ ◀──────┘ 输出结果 在没有缓存的情况下,只有最后一步是真正在做业务,前面四步每个请求都重复跑一遍 —— 极其浪费。 OPcache 把编译产物(opcode)缓存在共享内存(SHM)里,下次同一个文件请求直接从内存拿编译好的 opcode 给 Zend VM 执行,跳过前四步。 性能提升:典型业务 QPS 提升 2-3 倍,CPU 使用率显著下降。PHP 5.5 起内置,开箱可用。 二、工作原理12345678请求 1:/index.php ├─ OPcach...

2021-03-20
OOP - 面向对象
一句话 OOP = 把”数据”和”操作数据的方法”封装到一起,再用继承/多态在不改旧代码的前提下扩展新行为。 它的对立面是「面向过程」(数据是数据,函数是函数)和「函数式」(数据不可变,靠函数组合)。三种范式各有适用场景,OOP 不是唯一正解。 三大特性1. 封装(Encapsulation)把内部状态藏起来,只暴露必要接口。 123456789class BankAccount { private int $balance = 0; // 外面碰不到 public function deposit(int $amount): void { if ($amount <= 0) throw new InvalidArgumentException(); $this->balance += $amount; } public function balance(): int { return $this->balance; }} ...

2019-03-20
PHP内置系统函数
系统函数 意义 备注 function_exists 系统或自定义函数 是否存在 class_exists 类是否存在 method_exists 类方法是否定义 property_exists 类属性是否定义 empty 类、变量、元素等是否为空
评论
公告
欢迎来到 Michael 的博客 · 记录代码、思考与生活