PHP 8 中的 Stringable 接口是什么?


在 PHP 8 中,添加了新的 Stringable 接口(__toSting)。此方法以双下划线(__)开头。__toString 方法允许将对象表示为字符串。当一个类使用 __toString 定义方法时,每当它需要作为字符串处理时,它将调用一个对象。

示例:使用 __toString 的 Stringable 接口

 在线演示

<?php
   class Employee{
      public function __toString(): string
      {
         return 'Employee Name';
      }
   }
   $employee = new Employee();
   print_r((string)$employee);
?>

输出

Employee Name

在 PHP 8 中,Stringable 接口使得传递字符串变得容易。当一个类实现了 __toString 方法后,会自动添加一个Stringable 接口。它不需要显式实现接口。只要在施加严格类型(string_types=1)时,Stringable 接口对于类型提示就很有用。

示例:在 PHP 8 中使用 Stringable 接口

 在线演示

<?php
   declare(strict_types=1);
   class Employee {
      public function __toString() {
         return 'Employee Details';
      }
   }
   $emp = new Employee;
   var_dump($emp instanceof Stringable);
?>

输出

bool(true)

更新于: 2021 年 4 月 1 日

361 次浏览

开启你的 职业生涯

完成课程并获得认证

开始
广告