kod:
<?php echo "$x";?>
zwraca wartosc zmiennej $x. czy mozna robic podobnie z funkcjami? chodzi mi o to, ze np jak napisze echo "$this->jakas_funkcja()"; to wydrukuje na ekranie wartosc zwrocona przez funkcje.
kod:
<?php echo "$x";?>
zwraca wartosc zmiennej $x. czy mozna robic podobnie z funkcjami? chodzi mi o to, ze np jak napisze echo "$this->jakas_funkcja()"; to wydrukuje na ekranie wartosc zwrocona przez funkcje.
nie wiem czy o to chodzi, ale używacie return coś takiego czyni :)
no nie o to chodzi. mam klase np users().w srodku klasy mam funkcje name($d), kotra zwraca imie uzytkownika. normalnie jak chce wydrukowac jakis napis, robie tak:
<?php echo 'Witaj '.$users->name(2); ?>
Pytanie brzmi "Czy da sie zrobic inaczej? mysle o tym, zeby wsadzic nazwe funkcji do string'a, np: <?php echo 'Witaj $users->name(2)'; ?>
Oczywiscie ten kod nie dziala.
może {}? gdzies widzialem przyklad z tym, ale może się mylę.
daj print("Witaj {$users->name(2)}");
no tez nie dziala
Karolaq napisał(a)
no nie o to chodzi. mam klase np users().w srodku klasy mam funkcje name($d), kotra zwraca imie uzytkownika. normalnie jak chce wydrukowac jakis napis, robie tak:
<?php echo 'Witaj '.$users->name(2); ?>
Pytanie brzmi "Czy da sie zrobic inaczej? mysle o tym, zeby wsadzic nazwe funkcji do string'a, np: <?php echo 'Witaj $users->name(2)'; ?>
Oczywiscie ten kod nie dziala.
nie rozumiem problemu :0
```php
$string = 'Witaj ' . $users->name(2);
echo($string);
?>
to byl tylko taki przyklad. mi chodzi tylko o to czy jest to mozliwe.
caly czas probuje rozwiazac problem http://4programmers.net/Forum/viewtopic.php?id=70927
jak mam funkcje echo preg_replace($exp, '$tpl->read_file($1)', $text); takie cos nie dziala. laczenie stringow nie wchodzi w gre, bo $1 to nie zmienna.
Karolaq napisał(a)
jak mam funkcje echo preg_replace($exp, '$tpl->read_file($1)', $text); takie cos nie dziala.
zainteresuj sie moze funkcja preg_replace_callback() chociaz nie wiem czy o to Ci chodzi...
[dopisane]
aha... wywolanie w preg_replace_callback funkcji z jakiejs klasy wyglada troszke inaczej, przyklad:
<?php
preg_replace_callback($reg_exp, array($tpl, 'read_file'), $text);
?>
Karolaq napisał(a)
jak mam funkcje echo preg_replace($exp, '$tpl->read_file($1)', $text); takie cos nie dziala.
a jak to ma ci dzialac gdy masz $tpl->read_file($1) w pojedynczych uszach [green]
w ramach tematu wywolywania zmiennych/funkcji ze stringa:
do zmiennych stosuje sie cos takiego: ${'nazwa_zmiennej'}
do funkcji stosuje sie funkcje call_user_func() (patrz: Manual)
a jesli chcemy wowalac metode jakiegos obiektu to, przyklad:
<?php
class test {
function dupa() {
echo 'blada';
}
}
$test = new test();
// normalne wywolanie metody dupa
$test->dupa();
// hardcorowe wywolanie metody dupa ;)
$obj = 'test';
$method = 'dupa';
call_user_func(array(${$obj}, $method));
?>