PHPカンファレンス福岡2025
レギュラートーク(30分)

パイプ演算子の実装を覗いてみよう

aki_artisan あかつか aki_artisan
2

PHP 8.5で導入されるパイプ演算子(|>)、楽しみですね!

パイプ演算子を使うと、
strtoupper('hello')

'hello' |> strtoupper(...)
が同じ意味になります。

実は、例にあげた2つの式は、opcodeとしても同一です。

このトークでは、php-srcのソースコードを読み解きながら、パイプ演算子がどのように実装されているかを見ていきます。

具体的には以下の内容を扱います

  • vldでのopcodeの比較
  • opcodeのコンパイルに使われるzend_astとznode
  • パイプ演算子を処理するzend_compile_pipe

PHPの新機能を通じてphp-srcに入門してみましょう