3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php namespace A; use B\D, C\E as F; // function calls function foo() { echo __NAMESPACE__;} // function calls foo(); // first tries to call "foo" defined in namespace "A" // then calls global function "foo" new D(); // using import rules, creates object of class "D" defined in namespace "B" // if not found, it tries to autoload class "B\D" new F(); // using import rules, creates object of class "E" defined in namespace "C" // if not found, it tries to autoload class "C\E" new \B(); // creates object of class "B" defined in global scope // if not found, it tries to autoload class "B" new \D(); // creates object of class "D" defined in global scope // if not found, it tries to autoload class "D" new \F(); // creates object of class "F" defined in global scope // if not found, it tries to autoload class "F" // static methods/namespace functions from another namespace B\foo(); // calls function "foo" from namespace "A\B" B::foo(); // calls method "foo" of class "B" defined in namespace "A" // if class "A\B" not found, it tries to autoload class "A\B" D::foo(); // using import rules, calls method "foo" of class "D" defined in namespace "B" // if class "B\D" not found, it tries to autoload class "B\D" \B\foo(); // calls function "foo" from namespace "B" \B::foo(); // calls method "foo" of class "B" from global scope // if class "B" not found, it tries to autoload class "B" // static methods/namespace functions of current namespace A\B::foo(); // calls method "foo" of class "B" from namespace "A\A" // if class "A\A\B" not found, it tries to autoload class "A\A\B" \A\B::foo(); // calls method "foo" of class "B" from namespace "A" // if class "A\B" not found, it tries to autoload class "A\B" ?>
Output for 7.0.0 - 7.1.0
A Fatal error: Uncaught Error: Class 'B\D' not found in /in/RNXb7:23 Stack trace: #0 {main} thrown in /in/RNXb7 on line 23
Process exited with code 255.
Output for 5.3.28 - 5.3.29, 5.4.20 - 5.6.28
A Fatal error: Class 'B\D' not found in /in/RNXb7 on line 23
Process exited with code 255.
Output for 5.3.0 - 5.3.27, 5.4.0 - 5.4.19
A Fatal error: Class 'B\D' not found in /in/Gpcjk on line 23
Process exited with code 255.
Output for 4.4.2 - 4.4.9, 5.1.0 - 5.2.17
Parse error: syntax error, unexpected T_STRING in /in/Gpcjk on line 2
Process exited with code 255.
Output for 4.3.1, 4.3.5 - 4.4.1, 5.0.0 - 5.0.5
Parse error: parse error, unexpected T_STRING in /in/Gpcjk on line 2
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error in /in/Gpcjk on line 2
Process exited with code 255.
Output for 4.3.0
Parse error: parse error, unexpected T_STRING in /in/RNXb7 on line 2
Process exited with code 255.