Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: use i zmienna
Forum PHP.pl > Forum > PHP
karis
jak w php5.3 moge wykonac instrukcje use ze zmiennej?

chodzi mi o takie cos

  1. $zmienna = 'defaultValue';
  2. use Cos\$zmienna;
enviro
A co dokładnie chciałbyś zrobić z tą zmienną?
karis
chiałbym użyc namespace wg wartosci zmiennej tak jak pokazałem w powyższym kodzie

zmienna ta bedzie pochodzic z $_SERVER['REQUEST_URI']

chce zrobic na takiej zasadzie routing w moim frameworku
enviro
Ogólnie takie wykorzystanie namespace mija się z celem, który chcesz osiągnąć.

Namespace użyłbym na Twoim miejscu na posortowanie klas, o tej samej nazwie ale innym działaniu. I raczej namespace używa się w rozbudowanych projektach.

Np:
echo \MySQL\connect();
echo \PDO\connect();

Ale jeżeli musisz już bardzo mocno to:

plik namespace.php
  1. <?php
  2.  
  3. namespace First {
  4. class F {
  5. function one() { echo '1'; }
  6. function two() { echo '2'; }
  7. }
  8. }
  9. namespace Second {
  10. class F {
  11. function one() { echo '2'; }
  12. function two() { echo '1'; }
  13. }
  14. }
  15. namespace Third {
  16. class F {
  17. function one() { echo 'null'; }
  18. function two() { echo 'null'; }
  19. }
  20. }
  21.  
  22.  
  23. ?>


oraz plik namespace2.php
  1. <?php
  2. require_once('namespace.php');
  3. if(isset($_GET['namespace'])) {
  4. $namespace = '\\'.$_GET['namespace'];
  5. }
  6. else {
  7. $namespace = '\Third';
  8. }
  9. $fullClassName = $namespace.'\\F';
  10. $class = new $fullClassName;
  11. $class->one();
  12.  
  13.  
  14. ?>


W zależności od namespace2.php?namespace=
Wywoływana jest metoda 'one()' z różnej klasy o tej samej nazwie z różnych namespace.

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.