Bug->Doc #81566 [Opn->Ver]: ob_get_status return value contains non-existing constants

[email protected]
Newsgroups php.doc.bugs
Message-ID <[email protected]>
Edit report at https://bugs.php.net/bug.php?id=81566&edit=1

 ID:                 81566
 Updated by:         [email protected]
 Reported by:        pegasus at vaultwiki dot org
 Summary:            ob_get_status return value contains non-existing
                     constants
-Status:             Open
+Status:             Verified
-Type:               Bug
+Type:               Documentation Problem
 Package:            Output Control
 PHP Version:        master-Git-2021-10-29 (Git)
 Block user comment: N
 Private report:     N

 New Comment:

This is a documentation issue.  "type" is either 0 (internal
handler) or 1 (userland handler).


Previous Comments:
------------------------------------------------------------------------
[2021-10-29 17:25:01] pegasus at vaultwiki dot org

Description:
------------
The PHP documentation for ob_get_status says that the returned "type" key may be one of PHP_OUTPUT_HANDLER_INTERNAL or PHP_OUTPUT_HANDLER_USER:
https://www.php.net/manual/en/function.ob-get-status.php

However, these constants have historically not been defined and are still undefined:
https://github.com/php/php-src/blob/29e5e4719c253e28f521f9fbee6b1bf2ea5f7e22/main/output.c#L206

Since PHP 8, undefined constants are now fatal errors. This means the following code, which the documentation suggests should work, will now throw a fatal error.

So this is either a PHP bug (two missing output-control constants), or a PHP documentation bug (docs mentioning constants that do not exist).

Test script:
---------------
ob_start();

$status = ob_get_status();

if ($status['type'] == PHP_OUTPUT_HANDLER_INTERNAL) // fatal error
// do something

Expected result:
----------------
The condition should be evaluated without notice, warning, or fatal error; or the documentation should be updated so that it no longer suggests that these constants exist and are return values of ob_get_status.

Actual result:
--------------
Before 7.2: E_NOTICE
7.2-7.4: E_WARNING
8+: fatal


------------------------------------------------------------------------



--
Edit this bug report at https://bugs.php.net/bug.php?id=81566&edit=1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.