php8.0 オブジェクトで:: class構​​文を許可する

php8.0 オブジェクトで:: class構​​文を許可する

php8.0では、オブジェクトで:: class構​​文を許可することができるようになったので、そのサンプルコードを記述してます。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • php 8.0.0

オブジェクトで:: class構​​文を許可
(Allow ::class syntax on objects)

php7では以下のコードは、エラー「PHP Fatal error: Cannot use ::class with dynamic class name」となりますが、

<?php

var_dump( stdClass::class );
var_dump( (new stdClass)::class );

php8では、エラーとはならずに以下の結果を取得することが可能になりました。

<?php

var_dump( stdClass::class );
// string(8) "stdClass"

var_dump( (new stdClass)::class );
// string(8) "stdClass"