Hallo Dennis,
Allerdings geht es nicht ohne das declare, dessen Sinn und Zweck ich noch nicht ganz verstanden habe...
So wie ich das vestanden habe, ist folgendes der Grund:
UNIX-Signale sind asynchron. D.h. sie können zu einem beliebigen Zeitpunkt ausgeführt werden. Auch, wenn gerade ein Stück C-Code von PHP ausgeführt wird, der "kritisch" ist. Deswegen kann PHP nicht direkt asynchron auf Signale reagieren, da der Zustand des Programms sonst u.U. nicht richtig definiert wäre. Also implementiert PHP Signalbehandlung wohl so, dass im C-Signalhandler, den PHP verwendet, bloß ein Flag gesetzt wird. PHP wird dieses Flag dann regelmäßig auswerten. Diese Auswertung geschieht immer dann, wenn ein Tick vorbei ist, PHP verwendet sozusagen eine interne Tick-Funktion, um Signale zu realisieren. Zu Tick-Funktionen siehe: http://de.php.net/manual/en/control-structures.declare.php#control-structures.declare.ticks
Das ganze ist jetzt zwar Spekulation, nachdem ich jedoch den Abschnitt über Ticks gelesen habe, dürfte das die einzige sinnvolle Erklärung sein.
Viele Grüße,
Christian
"I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup