mirror of
https://github.com/php/php-src.git
synced 2024-09-23 10:57:26 +00:00
3ae995f03c
This implements a reduced variant of #1226 with just the following change: -Fatal error: Uncaught exception 'EngineException' with message 'Call to private method foo::bar() from context ''' in %s:%d +Fatal error: Uncaught EngineException: Call to private method foo::bar() from context '' in %s:%d The '' wrapper around messages is very weird if the exception message itself contains ''. Futhermore having the message wrapped in '' doesn't work for the "and defined" suffix of TypeExceptions.
93 lines
1.8 KiB
PHP
93 lines
1.8 KiB
PHP
--TEST--
|
|
Class constant declarations
|
|
--FILE--
|
|
<?php
|
|
define('DEFINED', 1234);
|
|
$def = 456;
|
|
define('DEFINED_TO_VAR', $def);
|
|
define('DEFINED_TO_UNDEF_VAR', $undef);
|
|
|
|
class C
|
|
{
|
|
const c0 = UNDEFINED;
|
|
|
|
const c1 = 1, c2 = 1.5;
|
|
const c3 = + 1, c4 = + 1.5;
|
|
const c5 = -1, c6 = -1.5;
|
|
|
|
const c7 = __LINE__;
|
|
const c8 = __FILE__;
|
|
const c9 = __CLASS__;
|
|
const c10 = __METHOD__;
|
|
const c11 = __FUNCTION__;
|
|
|
|
const c12 = DEFINED;
|
|
const c13 = DEFINED_TO_VAR;
|
|
const c14 = DEFINED_TO_UNDEF_VAR;
|
|
|
|
const c15 = "hello1";
|
|
const c16 = 'hello2';
|
|
const c17 = C::c16;
|
|
const c18 = self::c17;
|
|
}
|
|
|
|
echo "\nAttempt to access various kinds of class constants:\n";
|
|
var_dump(C::c0);
|
|
var_dump(C::c1);
|
|
var_dump(C::c2);
|
|
var_dump(C::c3);
|
|
var_dump(C::c4);
|
|
var_dump(C::c5);
|
|
var_dump(C::c6);
|
|
var_dump(C::c7);
|
|
var_dump(C::c8);
|
|
var_dump(C::c9);
|
|
var_dump(C::c10);
|
|
var_dump(C::c11);
|
|
var_dump(C::c12);
|
|
var_dump(C::c13);
|
|
var_dump(C::c14);
|
|
var_dump(C::c15);
|
|
var_dump(C::c16);
|
|
var_dump(C::c17);
|
|
var_dump(C::c18);
|
|
|
|
echo "\nExpecting fatal error:\n";
|
|
var_dump(C::c19);
|
|
|
|
echo "\nYou should not see this.";
|
|
?>
|
|
--EXPECTF--
|
|
|
|
Notice: Undefined variable: undef in %s on line 5
|
|
|
|
Attempt to access various kinds of class constants:
|
|
|
|
Notice: Use of undefined constant UNDEFINED - assumed 'UNDEFINED' in %s on line %d
|
|
string(9) "UNDEFINED"
|
|
int(1)
|
|
float(1.5)
|
|
int(1)
|
|
float(1.5)
|
|
int(-1)
|
|
float(-1.5)
|
|
int(15)
|
|
string(%d) "%s"
|
|
string(1) "C"
|
|
string(1) "C"
|
|
string(0) ""
|
|
int(1234)
|
|
int(456)
|
|
NULL
|
|
string(6) "hello1"
|
|
string(6) "hello2"
|
|
string(6) "hello2"
|
|
string(6) "hello2"
|
|
|
|
Expecting fatal error:
|
|
|
|
Fatal error: Uncaught EngineException: Undefined class constant 'c19' in %s:53
|
|
Stack trace:
|
|
#0 {main}
|
|
thrown in %s on line 53
|