(PHP 5 >= 5.3.0, PHP 7)
Examples:
Dynamically accessing elements
PHP's implementation of namespaces is influenced by its dynamic nature as a programming language. Thus, to convert code like the following example into namespaced code:
example1.php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php 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 ?> |
Dynamically accessing namespaced elements
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <?php namespace namespacename; class classname { function __construct() { echo __METHOD__ , "\n" ; } } function funcname() { echo __FUNCTION__ , "\n" ; } const constname = "namespaced" ; /* 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 ?> |
Please login to continue.