Hasty Briefsbeta

双语

Stop Using Pseudo-Types

4 months ago
  • #PHP
  • #Programming
  • #Best Practices
  • PHP中的伪类型如'callable'和'iterable'并非真实类型,而是具有特定验证逻辑的类型集合。
  • 'callable'伪类型包含如'Closure'、'string'和'array'等类型,并在运行时验证可调用性。
  • 'iterable'伪类型在PHP 7.1中引入,在PHP 8.2中成为联合类型'Traversable|array'。
  • 将'iterable'用于返回类型可能导致混淆和误用,因为它可能返回数组或迭代器。
  • 为了更好的代码清晰度和分析,建议使用明确类型如'Closure'替代'callable',用生成器替代'iterable'。
  • 使用'Closure'类型标注属性时需要特定调用语法,如'($this->callback)();'或'$this->callback->__invoke();'。
  • 避免使用伪类型可提升代码可读性、减少错误,并增强与PHPStan等静态分析工具的兼容性。