[php-src] Issue #20426: Spoofchecker::setRestrictionLevel() error message suggests missing constants

From: Date: Sat, 08 Nov 2025 15:40:40 +0000
Subject: [php-src] Issue #20426: Spoofchecker::setRestrictionLevel() error message suggests missing constants
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-251190@lists.php.net to get a copy of this message
Issue: https://github.com/php/php-src/issues/20426 Author: DanielEScherzer ### Description The following code: ```php <?php try { (new Spoofchecker())->setRestrictionLevel( -2 ); } catch ( \Throwable $e ) { // Show the error message echo $e->getMessage() . "\n\n"; } $cases = [ 'Spoofchecker::ASCII', 'Spoofchecker::SINGLE_SCRIPT_RESTRICTIVE', 'Spoofchecker::SINGLE_HIGHLY_RESTRICTIVE', 'Spoofchecker::SINGLE_MODERATELY_RESTRICTIVE', 'Spoofchecker::SINGLE_MINIMALLY_RESTRICTIVE', 'Spoofchecker::UNRESTRICTIVE', ]; foreach ( $cases as $case ) { if ( defined( $case ) ) { echo "$case - is defined\n"; } else { echo "$case - NOT defined\n"; } } ``` Resulted in this output: ``` Spoofchecker::setRestrictionLevel(): Argument #1 ($level) must be one of Spoofchecker::ASCII, Spoofchecker::SINGLE_SCRIPT_RESTRICTIVE, Spoofchecker::SINGLE_HIGHLY_RESTRICTIVE, Spoofchecker::SINGLE_MODERATELY_RESTRICTIVE, Spoofchecker::SINGLE_MINIMALLY_RESTRICTIVE, or Spoofchecker::UNRESTRICTIVE Spoofchecker::ASCII - is defined Spoofchecker::SINGLE_SCRIPT_RESTRICTIVE - is defined Spoofchecker::SINGLE_HIGHLY_RESTRICTIVE - NOT defined Spoofchecker::SINGLE_MODERATELY_RESTRICTIVE - NOT defined Spoofchecker::SINGLE_MINIMALLY_RESTRICTIVE - NOT defined Spoofchecker::UNRESTRICTIVE - is defined ``` But I expected this output instead: * ValueError message only suggests class constants that exist ### PHP Version ```plain 8.3+ ``` ### Operating System _No response_

« previous php.bugs (#251190) next »