1--TEST-- 2Typed class constants (type mismatch; runtime) 3--FILE-- 4<?php 5class A { 6 public const stdClass&Stringable CONST1 = C; 7 public const stdClass&Stringable CONST2 = A::CONST1; 8} 9 10define("C", new stdClass); 11 12try { 13 var_dump(A::CONST2); 14} catch (TypeError $exception) { 15 echo $exception->getMessage() . "\n"; 16} 17 18try { 19 var_dump(A::CONST2); 20} catch (TypeError $exception) { 21 echo $exception->getMessage() . "\n"; 22} 23 24try { 25 var_dump(A::CONST1); 26} catch (TypeError $exception) { 27 echo $exception->getMessage() . "\n"; 28} 29 30try { 31 var_dump(A::CONST1); 32} catch (TypeError $exception) { 33 echo $exception->getMessage() . "\n"; 34} 35?> 36--EXPECT-- 37Cannot assign stdClass to class constant A::CONST1 of type stdClass&Stringable 38Cannot assign stdClass to class constant A::CONST1 of type stdClass&Stringable 39Cannot assign stdClass to class constant A::CONST1 of type stdClass&Stringable 40Cannot assign stdClass to class constant A::CONST1 of type stdClass&Stringable 41