xref: /php-src/ext/opcache/tests/jit/assign_036.phpt (revision c16ad918)
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