📜 ⬆️ ⬇️

Pseudo-namespace

PHP 5.3 has added support for namespaces, but this version is still poorly distributed and unsuitable for industrial use in distributed projects. In the meantime, the new version is on the way, I made a simple replacement of the namespace for variables.


These functions can be used when you need to transfer variables from one included script to another, but it is not known what might happen to them on the way. At the end of the first script, we call the nsout () function with the space identifier and the list of variables that need to be saved, and before using these variables in the second script, we call nsin () with the space identifier.

Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  1. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  2. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  3. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  4. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  5. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  6. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  7. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  8. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  9. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  10. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  11. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  12. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  13. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  14. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  15. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  16. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  17. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  18. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  19. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  20. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  21. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  22. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  23. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  24. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }
  25. Copy Source | Copy HTML // function nsout( $ns , $vars = array ()) { global $NS ; foreach ( $vars as $var ) eval ( "global $$var; \$NS[\$ns][\$var] = $$var;" ); } // function nsin( $ns ) { global $NS ; $code = '' ; if (!is_array( $NS )) return ; foreach ( $NS [ $ns ] as $name => $value ) $code .= " <br/> global $$name; <br/> $$name = " . php_var_map( $value ) . "; <br/> " ; eval ( $code ); } function php_var_map( $var ) { if (!is_array( $var )) return "'$var'" ; else { $code = '' ; foreach ( $var as $name => $value ) $code .= ( $code ? ', ' : '' ) . "'$name' => " . php_var_map( $value ); return "array($code)" ; } }

')
UPD: As homm suggested, there are two great functions compact () and extract () that are designed for this purpose. So you can write like this:

$NS['ns1'] = compact('var1', 'var2', 'var3');

And then

extract($NS['ns1']);

In addition, the extract () function gives additional control over the extraction of variables, allowing you to add a prefix and control conflicts.

Source: https://habr.com/ru/post/67596/


All Articles