Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> use i zmienna
karis
post
Post #1





Grupa: Zarejestrowani
Postów: 217
Pomógł: 2
Dołączył: 23.12.2008

Ostrzeżenie: (0%)
-----


jak w php5.3 moge wykonac instrukcje use ze zmiennej?

chodzi mi o takie cos

  1. $zmienna = 'defaultValue';
  2. use Cos\$zmienna;
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
enviro
post
Post #2





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.09.2011
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


A co dokładnie chciałbyś zrobić z tą zmienną?
Go to the top of the page
+Quote Post
karis
post
Post #3





Grupa: Zarejestrowani
Postów: 217
Pomógł: 2
Dołączył: 23.12.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
enviro
post
Post #4





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.09.2011
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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.

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 14:39