php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.04.2005, 13:48  
Gast
 
Beiträge: n/a
Standard klassen in sich selbst zerstören

hallo zusammen,

ich hab folgendes problem:
ich hab eine klasse mit der methode stop(). diese wird aufgerufen wenn die klasse einen fehler erzeugt und sollte eigendlich die klasse zerstören und dadurch den desctrutor aufrufen.

nur mit unset funktioniert das nicht...

hier die gekürze version:
Code:
	class compiler
	{
		private $source;
		
		public function __construct($source)
		{
			$this->echo_head();
			
			$this->echo_line("compiler started");			
			$this->echo_line("something done ...");			
			
			$this->stop();

			# das hier sollte nicht mehr ausgeführt werden ...
			$this->echo_line("something done ...");			
			$this->echo_line("compiler finished :)");
		}
		
		public function stop()
		{
			$this->echo_line("compiler stopped :(");
			unset($this) # hier sollte jez der desctruktur gestartet werden und die klasse zerstört.
		}
		
		public function __destruct()
		{
			$this->echo_footer();		
		}
		
		....
	}
normalerweiße könnte man jetzt einfach hier exit() senden. das problem ist ich will diese klasse in ein komplexers system einbinden und will nicht das ganze script beenden. sondern nur die aktuelle instanz zerstören.

ich find einfach keine passenden befehl bzw. ne alternative fällt mir nicht ein ...
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.04.2005, 13:59  
Gast
 
Beiträge: n/a
Standard

unset($this) geht nicht, aber das:

PHP-Code:
<?php
$test 
= new klasse();

# irgend was

unset($test);
?>
Dabei wird __destruct() aufgerufen.
  Mit Zitat antworten
Alt 19.04.2005, 14:25  
Gast
 
Beiträge: n/a
Standard

schon klar so ein nap bin ich auch nicht

ich muss dir klasse in sich selber zerstören ...
methode stop wird vom construter (wenn nötig) aufgerufen und beender die instanz ...
  Mit Zitat antworten
Alt 19.04.2005, 14:37  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

ne idee wäre vieleicht einfach mit nem eigenen error_handler zu arbeiten der das objekt zerstört. weil da kannst du dann unset($test); machen

mfg
robo47
robo47 ist offline   Mit Zitat antworten
Alt 19.04.2005, 15:04  
Gast
 
Beiträge: n/a
Standard

guter vorschlag aber das ist leider aus verschiedenen gründen nicht möglich bei dem projekt wo ich das brauche ...

ich denke es müsste doch eine fkt. geben wo man das objekt selber zerstören kann.
sowas wie $this->__destroy() ...

kann ja nicht os schwer sein
  Mit Zitat antworten
Alt 19.04.2005, 15:06  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard

und was genau hindert dich, den desturktor direkt aufzurufen ? kein guter stil, weiss ich auch, aber wenns nich anders geht ?
__________________
Was ist validität?
fantast ist offline   Mit Zitat antworten
Alt 19.04.2005, 15:19  
Gast
 
Beiträge: n/a
Standard

schon probiert.
den destruktor aufrufen zerstört die instanz nicht
wenn ich den destruktor aufrufe nocheinmal wird er im endeffekt nur 2 mal aufgerufen ..
  Mit Zitat antworten
Alt 19.04.2005, 15:21  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard

__construct() {
/* bad thing happening */
throw new Exception('boo');


Instanz entsteht gar nicht erst ...

my 2 cents ...
Guradia ist offline   Mit Zitat antworten
Alt 19.04.2005, 15:30  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard

hat php nich nen garbage collector ? oder muss man da noch selbst zerstoeren ? also sprich, du rufst den destructor auf, und dann laesst du die instanz einfach instanz sein, zerstoerst (NULL) alle referenzen darauf. dann wirds automatisch zerstoert. oder geht das nur in java ?
__________________
Was ist validität?
fantast ist offline   Mit Zitat antworten
Alt 19.04.2005, 17:46  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Guradia
__construct() {
/* bad thing happening */
throw new Exception('boo');

Instanz entsteht gar nicht erst ...
Klar, weil das Script vorher gestorben ist:
http://test.php-help.info/class-8/
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Klassen und externe Funktionen ? ssm PHP-Fortgeschrittene 17 18.07.2007 11:59
Klassen sinnvoll nutzen, Grundlegendes nikosch PHP-Fortgeschrittene 1 30.09.2006 22:08
Fragen zu Klassen Kein Genie PHP Tipps 2006 3 08.05.2006 11:25
Sessions an includete Klassen übergeben Dr_Enquinox PHP Tipps 2006 4 29.04.2006 10:25
mit html klassen definieren und in php ausgeben PHP-Fortgeschrittene 4 16.01.2006 10:31
[Erledigt] PHP 4 - Klassen? patr1k PHP Tipps 2005 10 18.11.2005 10:48
Klassen Fatal Error PHP Tipps 2005-2 3 19.10.2005 15:31
Klassen und OOP Problem PHP-Fortgeschrittene 3 08.09.2005 10:37
komplett in Klassen Beitragsarchiv 3 29.07.2005 15:04
klassen und methoden anderer klassen in methoden.... PHP Tipps 2005 17 25.05.2005 09:46
Klassen PHP Tipps 2005 5 09.04.2005 18:51
Klassen in Klassen verwenden PHP Tipps 2005 5 23.02.2005 14:08
Klassen in PHP PHP Tipps 2004 4 12.08.2004 13:17
Klassen?! PHP Tipps 2004 14 03.06.2004 17:33

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
klasse zerstören, php objekt zerstören, selbstzerstören java, eigene klasse zerstören java, php klasse selbst zerstören, php seiten selbstzerstörung, java klasse zerstören, php classe selbszerstörung, instanz einer klasse zerstören java, klasse sich selbst zerstören lassen, java objekt selbstzerstörung, klasse selbst zerstören php, java object selbst zerstören, eine klasse sich selbst zerstören lassen, php klasse instanz beenden, java klasse selbst zerstören, php class in sich selbst instanzieren, java selbstzerstörung, java objekt selbst zerstören, instanz in der klasse zerstören

Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.