擬似名前空間

PHP 5.3は名前空間のサポートを追加しますが、 このバージョンは依然として不十分に配布されており、再配布可能なプロジェクトでの産業利用には適していません 。 それまでの間、新しいバージョンは準備中です。変数の名前空間を簡単に置き換えました。





これらの関数は、含まれているスクリプトから別のスクリプトに変数を転送する必要がある場合に使用できますが、途中で変数に何が起こるかはわかりません。 最初のスクリプトの最後に、スペース識別子と保存する必要のある変数のリストを指定してnsout()関数を呼び出し、2番目のスクリプトでこれらの変数を使用する前に、スペース識別子を指定してnsin()を呼び出します。



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: hommが示唆しているように、2つの優れた関数compact()とextract()があり、これらはこの目的のためだけのものです。 したがって、次のように書くことができます。



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







そして



extract($NS['ns1']);







さらに、extract()関数は変数の抽出をさらに制御し、接頭辞を追加して競合を制御できます。



All Articles