1--TEST-- 2JIT ASSIGN: Assign with INTERNED string(no RC) 3--INI-- 4opcache.enable=1 5opcache.enable_cli=1 6opcache.file_update_protection=0 7opcache.protect_memory=1 8;opcache.jit_debug=257 9--EXTENSIONS-- 10opcache 11--FILE-- 12<?php 13class A { 14 public $result = "string"; 15 function __set($propName, $propValue) 16 { 17 $oldType = \gettype($this->$propName); 18 $newType = \gettype($propValue); 19 if ($propValue === 'false') 20 { 21 $newType = 'boolean'; 22 $propValue = \false; 23 } 24 elseif ($propValue === 'true') 25 { 26 $newType = 'boolean'; 27 $propValue = \true; 28 } 29 if ($oldType !== $newType) 30 { 31 $tmp = $propValue; 32 \settype($tmp, $newType); 33 } 34 $this->propName = $propValue; 35 } 36} 37$a = new A; 38$a->result = "okey"; 39echo $a->result; 40?> 41--EXPECT-- 42okey 43