ďťż
 
referencja do nazwy funkcji ďťż
 
referencja do nazwy funkcji
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

referencja do nazwy funkcji



Iceman - 05-09-2006 05:18
witam

szukalem juz na google i w archiwach Google Groups i widzialem ze ktos juz
zadawal to pytanie ale odpowiedzi nie bylo. a chodzi o referencje do nazwy
funkcji (jezeli dziala to inaczej w klasie to chodzi mi o klase) dla php4
(bo takie mam na serwerze)

przyklad

class A
{
var $c;

function A ()
{
$this->C = new B;
}
}

zalozmy ze w klasie B jest funkcja o nazwe function_b
i gdybym chcial sie do niej odwolac poza klasa A wygladaloby to mniej wiecej
tak

$nowy = new A;
$nowy->C->function_b($parametr);

co jak widac jest dosyc uciazliwe i wolalbym zeby wygladalo to tak
$nowy = new A;
$nowy->nazwa_referencji_do_function_b($parametr)

nie wiem czy dosyc jasno to wytlumaczylem ale gdyby ktos zrozumial moja
zagmatwana wypowiedz i wiedzial jak to zrobic to prosze smialo pisac :-)

pozdrawiam
Iceman





Jacek Karczmarczyk - 05-09-2006 05:18

  Dnia Sun, 03 Sep 2006 23:14:47 +0200, Iceman napisał(a):

> class A
> {
> var $c;
>
> function A ()
> {
> $this->C = new B;
> }
> }
>
> zalozmy ze w klasie B jest funkcja o nazwe function_b
> i gdybym chcial sie do niej odwolac poza klasa A wygladaloby to mniej wiecej
> tak
>
> $nowy = new A;
> $nowy->C->function_b($parametr);
>
> co jak widac jest dosyc uciazliwe i wolalbym zeby wygladalo to tak
> $nowy = new A;
> $nowy->nazwa_referencji_do_function_b($parametr)

class A {
function A() { ... }
function nazwa_referencji_do_function_b($parametr)
{
$this->C->function_b($parametr);
}
}
ewentualnie w PHP5 możesz skorzystać z __call i odwoływać się po prostu

$nowy->function_b();

--
Jacek Karczmarczyk
"Podoba mi sie to, co panowie mowia, ze sie podoba..." / Rejs

[ http://larch.nazwa.pl ]




Iceman - 05-09-2006 05:18

  Jacek Karczmarczyk wrote:

> Dnia Sun, 03 Sep 2006 23:14:47 +0200, Iceman napisał(a):
>
>
> class A {
> function A() { ... }
> function nazwa_referencji_do_function_b($parametr)
> {
> $this->C->function_b($parametr);
> }
> }
> ewentualnie w PHP5 możesz skorzystać z __call i odwoływać się po prostu
>
> $nowy->function_b();
>

dzieki za odpowiedz ale tak jak pisalem na serwerze mam php4 czyli __call i
sposoby z php5 nic mi nie daja a sposob ktory podales (co prawda uzywalem
go wczesniej wiele razy no ale wlasnie nie o to mi chodzi) nie wiele ma
wspolnego z referencja ale mimo wszystko dziekuje

pozdrawiam
Iceman




Jacek Karczmarczyk - 05-09-2006 05:18

  Dnia Mon, 04 Sep 2006 09:45:20 +0200, Iceman napisał(a):
> dzieki za odpowiedz ale tak jak pisalem na serwerze mam php4 czyli __call i
> sposoby z php5 nic mi nie daja a sposob ktory podales (co prawda uzywalem
> go wczesniej wiele razy no ale wlasnie nie o to mi chodzi) nie wiele ma
> wspolnego z referencja ale mimo wszystko dziekuje

nie wydaje mi się, żeby dało się to jakoś inaczej zrobić

--
Jacek Karczmarczyk
"Podoba mi sie to, co panowie mowia, ze sie podoba..." / Rejs

[ http://larch.nazwa.pl ]





Iceman - 05-09-2006 05:18

  Jacek Karczmarczyk wrote:

> Dnia Mon, 04 Sep 2006 09:45:20 +0200, Iceman napisał(a):
>> dzieki za odpowiedz ale tak jak pisalem na serwerze mam php4 czyli __call
>> i sposoby z php5 nic mi nie daja a sposob ktory podales (co prawda
>> uzywalem go wczesniej wiele razy no ale wlasnie nie o to mi chodzi) nie
>> wiele ma wspolnego z referencja ale mimo wszystko dziekuje
>
> nie wydaje mi się, żeby dało się to jakoś inaczej zrobić
>

w takim razie troche inne pytanie :-) jezeli na obecnym serwerze mam php4 i
pod taki pisze skrypty a znalazlbym serwer z php4/php5 to czy:

1. istnieje cos na ksztalt 'dyrektyw prekompilatora' (ps. widze roznice
pomiedzy c,c++ i php czy perl'em - to zeby ktos nie posadzil mnie o
ignorancje i glupote) czyli pisze sobie skrypt i wstawiam
odpowiednie 'dyrektywy' w zaleznosci od tego jaki bedzie na serwerze parser
a w srodku odpowiednie funkcje/metody dla php4 i php5? chodzi o to zebym
nie musial pisac osobnych skryptow...
2. jezeli na serwerze jest php4 i php5 to zazwyczaj jest tak ze .php
czy .php4 sa parsowane przez php4 a .php5 przez php5. czy moge wowczas
stworzyc tylko 2 pliki index.php (parsowany przez php4) i index.php5
(parsowany przez php5) bez zmian w plikach dodawanych za
pomoca 'include', 'include_once', 'require', 'require_once'? jezeli tak to
jakie wowczas powinno byc rozszerzenie takich plikow - .php,.php4,.php5?
3. trzecie i juz ostatnie :-) jezeli skrytp zaczyna byc parsowany przez, np.
php5, to pomimo uzycia 'include', 'require' i plikow .php to parser sie
wowczas nie przestawia na php4...?

pozdrawiam
Iceman




Jacek Karczmarczyk - 05-09-2006 05:18

  Dnia Mon, 04 Sep 2006 13:51:17 +0200, Iceman napisał(a):

> 1. istnieje cos na ksztalt 'dyrektyw prekompilatora' (ps. widze roznice
> pomiedzy c,c++ i php czy perl'em - to zeby ktos nie posadzil mnie o
> ignorancje i glupote) czyli pisze sobie skrypt i wstawiam
> odpowiednie 'dyrektywy' w zaleznosci od tego jaki bedzie na serwerze parser
> a w srodku odpowiednie funkcje/metody dla php4 i php5? chodzi o to zebym
> nie musial pisac osobnych skryptow...

nie wiem czy dobrze zrozumiałem (przepraszam, jeszcze nie piłem dzisiaj),
ale może to pomoże

http://pl.php.net/phpversion

> pomoca 'include', 'include_once', 'require', 'require_once'? jezeli tak to
> jakie wowczas powinno byc rozszerzenie takich plikow - .php,.php4,.php5?

to zależy od ustawień serwera

> 3. trzecie i juz ostatnie :-) jezeli skrytp zaczyna byc parsowany przez, np.
> php5, to pomimo uzycia 'include', 'require' i plikow .php to parser sie
> wowczas nie przestawia na php4...?

nie

--
Jacek Karczmarczyk
"Podoba mi sie to, co panowie mowia, ze sie podoba..." / Rejs

[ http://larch.nazwa.pl ]




Jacek Karczmarczyk - 05-09-2006 05:18

  Dnia Mon, 4 Sep 2006 13:59:37 +0200, Jacek Karczmarczyk napisał(a):
>> pomoca 'include', 'include_once', 'require', 'require_once'? jezeli tak to
>> jakie wowczas powinno byc rozszerzenie takich plikow - .php,.php4,.php5?
>
> to zależy od ustawień serwera

a konkretnie rozszerzenie pliku "glownego" jest wazne, to co includujesz
moze miec rozszerzenie .dupa

--
Jacek Karczmarczyk
"Podoba mi sie to, co panowie mowia, ze sie podoba..." / Rejs

[ http://larch.nazwa.pl ]




sg - 05-09-2006 05:18

  Jacek Karczmarczyk napisał(a):
> Dnia Mon, 4 Sep 2006 13:59:37 +0200, Jacek Karczmarczyk napisał(a):
>>> pomoca 'include', 'include_once', 'require', 'require_once'? jezeli tak to
>>> jakie wowczas powinno byc rozszerzenie takich plikow - .php,.php4,.php5?
>> to zależy od ustawień serwera
>
> a konkretnie rozszerzenie pliku "glownego" jest wazne, to co includujesz
> moze miec rozszerzenie .dupa
>

no niby tak, ale wtedy jest ten problem, że wpisanie
http://blebleble/cos.dupa wyświetli cały plik




Iceman - 05-09-2006 05:18

  dzieki za odpowiedz a w pierwszym pytaniu chodzilo mi raczej o cos takiego

class A
{

#if_php_version==5
function __construct(...)
{
// tresc metody
}
#endif
#if_php_version==4
function A (...)
{
// tresc metody dla php4
}
#endif

}




Jacek Karczmarczyk - 05-09-2006 05:18

  Dnia Mon, 04 Sep 2006 14:15:05 +0200, Iceman napisał(a):

> class A
> {
>
> #if_php_version==5
> function __construct(...)
> {
> // tresc metody
> }
> #endif
> #if_php_version==4
> function A (...)
> {
> // tresc metody dla php4
> }
> #endif
>
> }

obawiam się, że tak się nie da

--
Jacek Karczmarczyk
"Podoba mi sie to, co panowie mowia, ze sie podoba..." / Rejs

[ http://larch.nazwa.pl ]




Jacek Karczmarczyk - 05-09-2006 05:18

  Dnia Mon, 04 Sep 2006 14:07:47 +0200, sg napisał(a):

>> a konkretnie rozszerzenie pliku "glownego" jest wazne, to co includujesz
>> moze miec rozszerzenie .dupa
>
> no niby tak, ale wtedy jest ten problem, że wpisanie
> http://blebleble/cos.dupa wyświetli cały plik

Fakt, ale ograniczyłem się tylko do wpływu rozszerzenia na includowanie
Poza tym można w apachu/.htaccess dać, żeby .dupy były parsowane jako php,
albo w ogóle deny all

--
Jacek Karczmarczyk
"Podoba mi sie to, co panowie mowia, ze sie podoba..." / Rejs

[ http://larch.nazwa.pl ]




NukeDMAn - 05-09-2006 05:18

  Iceman napisał(a):
> dzieki za odpowiedz a w pierwszym pytaniu chodzilo mi raczej o cos takiego
>
> class A
> {
>
> #if_php_version==5
> function __construct(...)
> {
> // tresc metody
> }
> #endif
> #if_php_version==4
> function A (...)
> {
> // tresc metody dla php4
> }
> #endif
>
> }

tak jak napisales nie zadziala, ALE :)

dla konkretnego twojego przypadku, mozna by zrobic tak:

class A {
function A {
$this->__construct('php4');
}
function __construct($phpver = 'php5') {
echo $phpver;
}
}

i wtedy np. $a = new A;

i drugi sposob:

class A {
function A {
$this->konstruktor();
}
function __construct() {
$this->konstruktor();
}
function konstruktor() {
if(function_exist('jakas_funkcja_tylko_w_php5')) {
$phpver = 5;
}
else {
$phpver = '<5'; // bo np. w php3 tez nie ma
}
echo $phpver;
}
}

ale to tak tylko :) bo jak uzyjesz juz po tym IFie z wersja jakiejs
funckji z php5 a wrzucisz parser 4, to i tak wyrzuci blad z
nieistniejaca funkcja (chyba).

--
Pozdrawiam,
NukeDMAn => [http://www.nukedman.prv.pl]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Photoshop CS2 - funkcje, =?ISO-8859-2?Q?kt=F3rych_si=EA_nie_?==?ISO-8859-2?Q?spodziewasz=2E=2E=2E?= [PostgreSQL] jak =?ISO-8859-2?Q?pobra=E6_warto=B6=E6_zwracan?==?ISO-8859-2?Q?=B1_przez_funkcj=EA=3F?= =?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?= [PostgreSQL] Jak =?ISO-8859-2?Q?po=B3=B1czy=E6_funkcje_z_w?==?ISO-8859-2?Q?idokiem?= postgres - ile razy wykona =?ISO-8859-2?Q?si=EA_funkcja_w_?==?ISO-8859-2?Q?zapytaniu?= [MySQL] Load data infile i =?ISO-8859-2?Q?u=BFycie_funkcji_r?==?ISO-8859-2?Q?eplace?= [PGSQL] Funkcje =?ISO-8859-2?Q?zwracaj=B1ce_=27rowset=27_i_?==?ISO-8859-2?Q?tabele_tymczasowe?= Problem z funkcja mysql_real_escape_string() na bazie mysql =?iso-8859-2?q?Sybase_jak_wyci=B1gn=B1=E6_dane_generowane_prz ez_funkcje?= =?iso-8859-2?q?[Mysql_5=2E0]_Wywo=B3ywanie_procedury_jako_parametr_funkcji?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • marcelq.xlx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com