Ik probeer een zo eenvoudig mogelijk cache systeem te maken. Hiervoor wil ik dat er maar één regel hoeft te worden aangeroepen, en verder niets. Hierom wil ik register_shutdown_function() gebruiken om, als dat nodig is, de totale output op te slaan in een file.
Ik heb de code voor dit probleem gereduceerd:
Geeft bij mij de output:
Terwijl er in a::start() wel degelijk een output buffer gestart wordt. Wanneer ik a::getcontents() aan het eind aanroep in plaats van via register_shutdown_function(), dan werkt het wel.
Wat doe ik verkeerd / hoe krijg ik het toch aan de praat met register_shutdown_function()?
Ik heb de code voor dit probleem gereduceerd:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| class a { function start() { ob_start(); register_shutdown_function(array('a','getcontents')); } function getcontents() { if (ob_get_contents() !== false) { echo 'Er is wel een buffer!'; } else { echo 'Er is geen buffer!'; } } } a::start(); echo date('r'); |
Geeft bij mij de output:
code:
1
| Tue, 12 Oct 2004 10:51:58 +0200Er is geen buffer! |
Terwijl er in a::start() wel degelijk een output buffer gestart wordt. Wanneer ik a::getcontents() aan het eind aanroep in plaats van via register_shutdown_function(), dan werkt het wel.
Wat doe ik verkeerd / hoe krijg ik het toch aan de praat met register_shutdown_function()?