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/drM38
function name:  (null)
number of ops:  41
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'
   18     1        ASSIGN                                                   !0, 'classname'
   19     2        FETCH_CLASS                                   0  $4      !0
          3        NEW                                              $5      $4
          4        DO_FCALL                                      0          
          5        ASSIGN                                                   !1, $5
   20     6        ASSIGN                                                   !2, 'funcname'
   21     7        INIT_DYNAMIC_CALL                                        !2
          8        DO_FCALL                                      0          
   22     9        INIT_NS_FCALL_BY_NAME                                    'namespacename%5Cconstant'
         10        SEND_VAL_EX                                              'constname'
         11        DO_FCALL                                      0  $10     
         12        ECHO                                                     $10
         13        ECHO                                                     '%0A'
   25    14        ASSIGN                                                   !0, '%5Cnamespacename%5Cclassname'
   26    15        FETCH_CLASS                                   0  $12     !0
         16        NEW                                              $13     $12
         17        DO_FCALL                                      0          
         18        ASSIGN                                                   !1, $13
   27    19        ASSIGN                                                   !0, 'namespacename%5Cclassname'
   28    20        FETCH_CLASS                                   0  $17     !0
         21        NEW                                              $18     $17
         22        DO_FCALL                                      0          
         23        ASSIGN                                                   !1, $18
   29    24        ASSIGN                                                   !2, 'namespacename%5Cfuncname'
   30    25        INIT_DYNAMIC_CALL                                        !2
         26        DO_FCALL                                      0          
   31    27        ASSIGN                                                   !2, '%5Cnamespacename%5Cfuncname'
   32    28        INIT_DYNAMIC_CALL                                        !2
         29        DO_FCALL                                      0          
   33    30        INIT_NS_FCALL_BY_NAME                                    'namespacename%5Cconstant'
         31        SEND_VAL_EX                                              '%5Cnamespacename%5Cconstname'
         32        DO_FCALL                                      0  $25     
         33        ECHO                                                     $25
         34        ECHO                                                     '%0A'
   34    35        INIT_NS_FCALL_BY_NAME                                    'namespacename%5Cconstant'
         36        SEND_VAL_EX                                              'namespacename%5Cconstname'
         37        DO_FCALL                                      0  $26     
         38        ECHO                                                     $26
         39        ECHO                                                     '%0A'
   35    40      > RETURN                                                   1

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