Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: łaczenie ciągów
Forum PHP.pl > Forum > PHP
Apo
Witam
Otóż mam nastepującu problem:

Próbuje wywołać klase
  1. <?php
  2. $_controller = new $_controller . 'Controller()';
  3. ?>


No i utworzy mi sie obiekt ale tylko z członem $_controller, a ciąg 'Controller()' zostanie pominięty,
dopiero gdy zrobie:

  1. <?php
  2. $ok = $_controller . 'Controller';
  3. $_controller = new $ok . '()';
  4. ?>


to wszystko jest ok. No i mam pytanie jak to zrobić w 1 ciągu :?:

Pozdrawiam :*
czachor
IMHO nie da się. Sam kiedyś próbowałem coś takiego, ale pozostaje tylko ta druga opcja.
Apo
No to jeszcze 1 mam pytanie. Jak zrobić z tego 1 ciąg aby tzw łańcuszek ;p
  1. <?php
  2. $_controller = new $ok . '()';
  3. $_controller->$_action . '()';
  4. ?>


bo gdy probuje:

  1. <?php
  2. $_controller = new $ok . '()'->$_action . '()';
  3. ?>

to wywala: Parse error: parse error, unexpected T_OBJECT_OPERATOR ;(
LamaMASTER
Jak chcesz to zapisać w jednej linii, skoro odwołujesz się do obiektu, który jeszcze nie został stworzony i nie ma wskaźnika? Spróbuj:
  1. <?php
  2. $_controller = (new $ok . '()')->$_action . '()';
  3. ?>

Ale pewnie i tak nie podziała.
czachor
Nie da się.
Seth
Zamiast odwolywania sie do metody w takis spob jak podales, proponuje uzyc funkcji: call_user_method" title="Zobacz w manualu php" target="_manual()

Inna mozliwosc to zabawa z eval" title="Zobacz w manualu php" target="_manual()
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.