You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PHP 8.4 replaces PHP_SESSION_* int constants with SessionStatus int-backed enum for session_status() return value and accepts the enum where session APIs take a status. Issue #3418 tracks procedural session_status() with legacy int constants; this issue covers the PHP 8.4 enum surface and return-type parity.
php-src-strict:session_status() must return SessionStatus enum case objects (not bare ints) on PHP 8.4+ semantics.
Summary
PHP 8.4 replaces
PHP_SESSION_*int constants withSessionStatusint-backed enum forsession_status()return value and accepts the enum where session APIs take a status. Issue #3418 tracks proceduralsession_status()with legacy int constants; this issue covers the PHP 8.4 enum surface and return-type parity.php-src-strict:
session_status()must returnSessionStatusenum case objects (not bare ints) on PHP 8.4+ semantics.php-src reference
ext/session/session.c—PHP_FUNCTION(session_status)ext/session/session.stub.php—enum SessionStatus: int { case Disabled = 0; case None = 1; case Active = 2; }Repro
Current:
bool(false)forclass_exists('SessionStatus');session_status()undefinedExpected (Zend PHP 8.4+):
enum_exists('SessionStatus'); aftersession_start()compare withSessionStatus::Active.Implementation (PHP-in-PHP)
SessionStatusinext/standard/BuiltinEnums.php(or session module stub) — same pattern as Stdlib: ExitStatus enum — PHP 8.4 exit()/die() backed enum missing (basic_functions.stub.php) #7294ExitStatus.session_status()inlib/Web/Session.php/ext/standard/returning enum case (phase 1 of Stdlib: session_status() / session_save_path() — session lifecycle introspection (ext/session parity) #3418 can land int path; this issue upgrades to enum).PHP_SESSION_*constants as aliases of enum backing values for BC where Zend does..phpt: none →SessionStatus::None, active →SessionStatus::Active.Done when
enum_exists('SessionStatus')truesession_status()returns enum cases matching Zend on same script./script/ci-fast.sh --filter session_statusgreen when Stdlib: session_status() / session_save_path() — session lifecycle introspection (ext/session parity) #3418 repro landsLinks
#3418 · #7294 · #1492