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"; include 'example1.php'; $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/l3k6F
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'
   16     1        INCLUDE_OR_EVAL                                          'example1.php', INCLUDE
   18     2        ASSIGN                                                   !0, 'classname'
   19     3        FETCH_CLASS                                   0  $5      !0
          4        NEW                                              $6      $5
          5        DO_FCALL                                      0          
          6        ASSIGN                                                   !1, $6
   20     7        ASSIGN                                                   !2, 'funcname'
   21     8        INIT_DYNAMIC_CALL                                        !2
          9        DO_FCALL                                      0          
   22    10        INIT_NS_FCALL_BY_NAME                                    'namespacename%5Cconstant'
         11        SEND_VAL_EX                                              'constname'
         12        DO_FCALL                                      0  $11     
         13        ECHO                                                     $11
         14        ECHO                                                     '%0A'
   25    15        ASSIGN                                                   !0, '%5Cnamespacename%5Cclassname'
   26    16        FETCH_CLASS                                   0  $13     !0
         17        NEW                                              $14     $13
         18        DO_FCALL                                      0          
         19        ASSIGN                                                   !1, $14
   27    20        ASSIGN                                                   !0, 'namespacename%5Cclassname'
   28    21        FETCH_CLASS                                   0  $18     !0
         22        NEW                                              $19     $18
         23        DO_FCALL                                      0          
         24        ASSIGN                                                   !1, $19
   29    25        ASSIGN                                                   !2, 'namespacename%5Cfuncname'
   30    26        INIT_DYNAMIC_CALL                                        !2
         27        DO_FCALL                                      0          
   31    28        ASSIGN                                                   !2, '%5Cnamespacename%5Cfuncname'
   32    29        INIT_DYNAMIC_CALL                                        !2
         30        DO_FCALL                                      0          
   33    31        INIT_NS_FCALL_BY_NAME                                    'namespacename%5Cconstant'
         32        SEND_VAL_EX                                              '%5Cnamespacename%5Cconstname'
         33        DO_FCALL                                      0  $26     
         34        ECHO                                                     $26
         35        ECHO                                                     '%0A'
   34    36        INIT_NS_FCALL_BY_NAME                                    'namespacename%5Cconstant'
         37        SEND_VAL_EX                                              'namespacename%5Cconstname'
         38        DO_FCALL                                      0  $27     
         39        ECHO                                                     $27
         40        ECHO                                                     '%0A'
   35    41      > RETURN                                                   1

Function namespacename%5Cfuncname:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/l3k6F
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

Class namespacename\classname:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/l3k6F
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.

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
155.74 ms | 1400 KiB | 15 Q