3v4l.org

run code in 300+ PHP versions simultaneously
<?php namespace namespacename { class classname { function __construct() { echo __METHOD__,"\n"; } } function funcname() { echo __FUNCTION__,"\n"; } const constname = "namespaced"; } /////////////////////////// namespace { class classname { function __construct() { echo __METHOD__,"\n"; } } function funcname() { echo __FUNCTION__,"\n"; } const constname = "global"; $a = 'classname'; $obj = new $a; // prints classname::__construct $b = 'funcname'; $b(); // prints funcname echo constant('constname'), "\n"; // prints global //////////////////////////// /* note that if using double quotes, "\\namespacename\\classname" must be used */ $a = '\namespacename\classname'; $obj = new $a; // prints namespacename\classname::__construct $a = 'namespacename\classname'; $obj = new $a; // also prints namespacename\classname::__construct $b = 'namespacename\funcname'; $b(); // prints namespacename\funcname $b = '\namespacename\funcname'; $b(); // also prints namespacename\funcname echo constant('\namespacename\constname'), "\n"; // prints namespaced echo constant('namespacename\constname'), "\n"; // also prints namespaced } ?>
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/9Op1O
function name:  (null)
number of ops:  42
compiled vars:  !0 = $a, !1 = $obj, !2 = $b
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   14     0  E >   DECLARE_CONST                                            'namespacename%5Cconstname', 'namespaced'
   30     1        DECLARE_CONST                                            'constname', 'global'
   34     2        ASSIGN                                                   !0, 'classname'
   35     3        FETCH_CLASS                                   0  $4      !0
          4        NEW                                              $5      $4
          5        DO_FCALL                                      0          
          6        ASSIGN                                                   !1, $5
   36     7        ASSIGN                                                   !2, 'funcname'
   37     8        INIT_DYNAMIC_CALL                                        !2
          9        DO_FCALL                                      0          
   38    10        INIT_FCALL                                               'constant'
         11        SEND_VAL                                                 'constname'
         12        DO_ICALL                                         $10     
         13        ECHO                                                     $10
         14        ECHO                                                     '%0A'
   45    15        ASSIGN                                                   !0, '%5Cnamespacename%5Cclassname'
   46    16        FETCH_CLASS                                   0  $12     !0
         17        NEW                                              $13     $12
         18        DO_FCALL                                      0          
         19        ASSIGN                                                   !1, $13
   47    20        ASSIGN                                                   !0, 'namespacename%5Cclassname'
   48    21        FETCH_CLASS                                   0  $17     !0
         22        NEW                                              $18     $17
         23        DO_FCALL                                      0          
         24        ASSIGN                                                   !1, $18
   49    25        ASSIGN                                                   !2, 'namespacename%5Cfuncname'
   50    26        INIT_DYNAMIC_CALL                                        !2
         27        DO_FCALL                                      0          
   51    28        ASSIGN                                                   !2, '%5Cnamespacename%5Cfuncname'
   52    29        INIT_DYNAMIC_CALL                                        !2
         30        DO_FCALL                                      0          
   53    31        INIT_FCALL                                               'constant'
         32        SEND_VAL                                                 '%5Cnamespacename%5Cconstname'
         33        DO_ICALL                                         $25     
         34        ECHO                                                     $25
         35        ECHO                                                     '%0A'
   54    36        INIT_FCALL                                               'constant'
         37        SEND_VAL                                                 'namespacename%5Cconstname'
         38        DO_ICALL                                         $26     
         39        ECHO                                                     $26
         40        ECHO                                                     '%0A'
   58    41      > RETURN                                                   1

Function namespacename%5Cfuncname:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/9Op1O
function name:  namespacename\funcname
number of ops:  3
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   12     0  E >   ECHO                                                     'namespacename%5Cfuncname'
          1        ECHO                                                     '%0A'
   13     2      > RETURN                                                   null

End of function namespacename%5Cfuncname

Function funcname:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/9Op1O
function name:  funcname
number of ops:  3
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   28     0  E >   ECHO                                                     'funcname'
          1        ECHO                                                     '%0A'
   29     2      > RETURN                                                   null

End of function funcname

Class namespacename\classname:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/9Op1O
function name:  __construct
number of ops:  3
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    7     0  E >   ECHO                                                     'namespacename%5Cclassname%3A%3A__construct'
          1        ECHO                                                     '%0A'
    8     2      > RETURN                                                   null

End of function __construct

End of class namespacename\classname.

Class classname:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/9Op1O
function name:  __construct
number of ops:  3
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   23     0  E >   ECHO                                                     'classname%3A%3A__construct'
          1        ECHO                                                     '%0A'
   24     2      > RETURN                                                   null

End of function __construct

End of class classname.

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
157.14 ms | 1405 KiB | 15 Q