@@ -11,29 +11,46 @@ class NullByteStringable {
1111try {
1212 var_dump (setlocale (LC_ALL , "C \0locale " ));
1313} catch (ValueError $ e ) {
14- echo $ e ->getMessage (), "\n" ;
14+ echo $ e::class, " : " , $ e ->getMessage (), \ PHP_EOL ;
1515}
1616
1717try {
1818 var_dump (setlocale (LC_ALL , ["locale \0name " , "C " ]));
1919} catch (ValueError $ e ) {
20- echo $ e ->getMessage (), "\n" ;
20+ echo $ e::class, " : " , $ e ->getMessage (), \ PHP_EOL ;
2121}
2222
2323try {
2424 var_dump (@setlocale (LC_ALL , [str_repeat ("x " , 255 ), "C \0locale " ]));
2525} catch (ValueError $ e ) {
26- echo $ e ->getMessage (), "\n" ;
26+ echo $ e::class, " : " , $ e ->getMessage (), \ PHP_EOL ;
2727}
2828
2929try {
30- var_dump (setlocale (LC_ALL , [], new NullByteStringable () ));
30+ var_dump (setlocale (LC_ALL , [" invalid " , " C \0 locale " ] ));
3131} catch (ValueError $ e ) {
32- echo $ e ->getMessage (), "\n" ;
32+ echo $ e::class, " : " , $ e ->getMessage (), \ PHP_EOL ;
3333}
34+
35+ try {
36+ var_dump (setlocale (LC_ALL , "invalid " , ["C \0locale " ]));
37+ } catch (TypeError $ e ) {
38+ echo $ e ::class, ": " , $ e ->getMessage (), \PHP_EOL ;
39+ }
40+
41+ try {
42+ var_dump (setlocale (LC_ALL , "invalid " , new NullByteStringable ()));
43+ } catch (ValueError $ e ) {
44+ echo $ e ::class, ": " , $ e ->getMessage (), \PHP_EOL ;
45+ }
46+
47+ var_dump (setlocale (LC_ALL , [], new NullByteStringable ()));
3448?>
3549--EXPECT--
36- setlocale(): Argument #2 ($locales) must not contain any null bytes
37- setlocale(): Argument #2 ($locales) must not contain any null bytes
38- setlocale(): Argument #2 ($locales) must not contain any null bytes
39- setlocale(): Argument #3 must not contain any null bytes
50+ ValueError: setlocale(): Argument #2 ($locales) must not contain any null bytes
51+ ValueError: setlocale(): Argument #2 ($locales) must not contain any null bytes
52+ ValueError: setlocale(): Argument #2 ($locales) must not contain any null bytes
53+ ValueError: setlocale(): Argument #2 ($locales) must not contain any null bytes
54+ TypeError: setlocale(): Argument #3 must be of type ?string, array given
55+ ValueError: setlocale(): Argument #3 must not contain any null bytes
56+ bool(false)
0 commit comments