Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: php5: destruktor
Forum PHP.pl > Forum > PHP > Object-oriented programming
qbba
witam winksmiley.jpg ,

Zauwazylem ze jesli w destruktorze znajdzie sie cos takiego:

[php:1:a96b09808b]<?php
class blabla
{
...
function __destruct()
{
$GLOBALS['smarty'] -> display('test.tpl');
}
...
}
?>[/php:1:a96b09808b]
Apache za kazdym razem sie wywala. W logach jest cos takiego:
Kod
...

[Tue Oct 14 22:32:50 2003] [notice] Parent: child process exited with status 3221225477 -- Restarting.

[Tue Oct 14 22:32:57 2003] [notice] Parent: Created child process 3888

[Tue Oct 14 22:33:00 2003] [notice] Child 3888: Child process is running

[Tue Oct 14 22:33:00 2003] [notice] Child 3888: Acquired the start mutex.

[Tue Oct 14 22:33:00 2003] [notice] Child 3888: Starting 250 worker threads.

...


Uzywam php5.0.0b2-dev(jako mdul servera) + apache 2.0.47

Pomóżcie :PPP
scanner
To co pokazales, to nie jest błąd.
jakiego systemu używasz? Jeśli Win200/XP to sprawdź co jest w "Dzienniku zdarzeń"
qbba
ze tez nie spojrzalem tongue.gif (win xp pro)
Kod
Aplikacja powodująca błąd Apache.exe, wersja 2.0.47.0, moduł powodujący błąd php4ts.dll, wersja 5.0.0.0, adres błędu 0x000f295c.


Sciagne najnowszego snapsa php moze bedzie oka tongue.gif

PS Dzięki
qbba
uuuuuu sciągnołem i niestety nic to samo (może kod jest wadliwy czy co??) powiedzcie mi czy to jest prawidłowe ?[php:1:81973a302d]
<?php
class blabla
{
...
function __destruct()
{
$GLOBALS['smarty'] -> display('test.tpl');
}
...
}

?>[/php:1:81973a302d]
Seth
hmmm... moze chodzi o to, ze chcesz uruchomic dodatkowy "proces" gdy juz ten, w ktorym dzialasz jest usuwany :/
qbba
chyba do tego sluzy destruktor zeby cos jeszcze uruchomic, dokonczyc.... Chyba ze Cie zle interpretuje. Moze wazne jest miejsce umieszczenia destruktora?
Destruktor mam wrzucony zaraz po konstruktorze.
FiDO
Sprobuj tak:
[php:1:f328fb82eb]
class blabla
{
var $test;

function __construct(&$t)
{
$this->test = &$t;
}

function __destruct()
{
echo "blabla::__destruct();<br/ >";
//$GLOBALS['test']->dosth();
$this->test->dosth();
}
}

$test = new test;
$obj = new blabla($test);
[/php:1:f328fb82eb]
qbba
Dzięki działa... swoją drogą ciekawa sprawa, jeśli uzyje się zmiennych superglobalnych w destruktorze za kazdym razem wywala mi sie apache...(mam zainstalowane jako modul serwera), zobaczcie u siebie jak to dziala.
FiDO
Ja sprawdzalem i dzieje sie to o czym piszesz, wiec poszukalem workaround'a smile.gif
qbba
jak znajdziesz daj znac... swoja droga ciekawe czemu tak sie dzieje tongue.gifP
FiDO
No przeciez znalazlem rolleyes.gif i napisalem go wyzej...
qbba
:oops: :oops: :oops: yyyy sorka.... nieprzeczytalem do konca jeszcze raz dzieki
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.