File: ob_start_basic_unerasable_002.phpt

package info (click to toggle)
php8.4 8.4.11-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 208,108 kB
  • sloc: ansic: 1,060,628; php: 35,345; sh: 11,866; cpp: 7,201; pascal: 4,913; javascript: 3,091; asm: 2,810; yacc: 2,411; makefile: 689; xml: 446; python: 301; awk: 148
file content (33 lines) | stat: -rw-r--r-- 975 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
--TEST--
ob_start(): Ensure unerasable buffer cannot be erased by ob_clean(), ob_end_clean() or ob_end_flush().
--FILE--
<?php
function callback($string) {
    static $callback_invocations;
    $callback_invocations++;
    return "[callback:$callback_invocations]$string\n";
}

ob_start('callback', 0, false);

echo "All of the following calls will fail to clean/remove the topmost buffer:\n";
var_dump(ob_clean());
var_dump(ob_end_clean());
var_dump(ob_end_flush());

echo "The OB nesting will still be 1 level deep:\n";
var_dump(ob_get_level());
?>
--EXPECTF--
[callback:1]All of the following calls will fail to clean/remove the topmost buffer:

Notice: ob_clean(): Failed to delete buffer of callback (0) in %s on line 11
bool(false)

Notice: ob_end_clean(): Failed to discard buffer of callback (0) in %s on line 12
bool(false)

Notice: ob_end_flush(): Failed to send buffer of callback (0) in %s on line 13
bool(false)
The OB nesting will still be 1 level deep:
int(1)