mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Remove special treatment of strings in asserts
This was deprecated in PHP 7.2 as part of https://wiki.php.net/rfc/deprecations_php_7_2.
This commit is contained in:
@@ -47,6 +47,11 @@ PHP 8.0 UPGRADE NOTES
|
||||
. mb_parse_str() can no longer be used without specifying a result array.
|
||||
|
||||
- Standard:
|
||||
. assert() will no longer evaluate string arguments, instead they will be
|
||||
treated like any other argument. assert($a == $b) should be used instead of
|
||||
assert('$a == $b'). The assert.quiet_eval ini directive and
|
||||
ASSERT_QUIET_EVAL constants have also been removed, as they would no longer
|
||||
have any effect.
|
||||
. parse_str() can no longer be used without specifying a result array.
|
||||
|
||||
========================================
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
--TEST--
|
||||
Bug #70208 (scope information must be preserved with assert())
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
function non_class_scope() {
|
||||
return true;
|
||||
}
|
||||
|
||||
class test {
|
||||
protected $prop = 1;
|
||||
|
||||
public function __construct() {
|
||||
assert('non_class_scope();');
|
||||
var_dump($this->prop);
|
||||
}
|
||||
}
|
||||
|
||||
new test;
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
int(1)
|
||||
@@ -1,21 +0,0 @@
|
||||
--TEST--
|
||||
Misoptimization when variable is modified by assert()
|
||||
--INI--
|
||||
zend.assertions=1
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
function test() {
|
||||
$i = 0;
|
||||
assert('$i = new stdClass');
|
||||
$i += 1;
|
||||
var_dump($i);
|
||||
}
|
||||
test();
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
|
||||
Notice: Object of class stdClass could not be converted to number in %s on line %d
|
||||
int(2)
|
||||
@@ -12,9 +12,6 @@ function test() {
|
||||
$func = 'get_defined_vars';
|
||||
$func();
|
||||
|
||||
$func = 'assert';
|
||||
$func('1==2');
|
||||
|
||||
$func = 'func_get_args';
|
||||
$func();
|
||||
|
||||
@@ -34,8 +31,6 @@ Warning: Cannot call compact() dynamically in %s on line %d
|
||||
|
||||
Warning: Cannot call get_defined_vars() dynamically in %s on line %d
|
||||
|
||||
Warning: Cannot call assert() with string argument dynamically in %s on line %d
|
||||
|
||||
Warning: Cannot call func_get_args() dynamically in %s on line %d
|
||||
|
||||
Warning: Cannot call func_get_arg() dynamically in %s on line %d
|
||||
|
||||
@@ -966,8 +966,6 @@ uint32_t zend_optimizer_classify_function(zend_string *name, uint32_t num_args)
|
||||
return ZEND_FUNC_INDIRECT_VAR_ACCESS;
|
||||
} else if (zend_string_equals_literal(name, "get_defined_vars")) {
|
||||
return ZEND_FUNC_INDIRECT_VAR_ACCESS;
|
||||
} else if (zend_string_equals_literal(name, "assert")) {
|
||||
return ZEND_FUNC_INDIRECT_VAR_ACCESS;
|
||||
} else if (zend_string_equals_literal(name, "func_num_args")) {
|
||||
return ZEND_FUNC_VARARG;
|
||||
} else if (zend_string_equals_literal(name, "func_get_arg")) {
|
||||
|
||||
@@ -29,7 +29,6 @@ ZEND_BEGIN_MODULE_GLOBALS(assert)
|
||||
zend_bool active;
|
||||
zend_bool bail;
|
||||
zend_bool warning;
|
||||
zend_bool quiet_eval;
|
||||
zend_bool exception;
|
||||
ZEND_END_MODULE_GLOBALS(assert)
|
||||
|
||||
@@ -46,7 +45,6 @@ enum {
|
||||
ASSERT_CALLBACK,
|
||||
ASSERT_BAIL,
|
||||
ASSERT_WARNING,
|
||||
ASSERT_QUIET_EVAL,
|
||||
ASSERT_EXCEPTION
|
||||
};
|
||||
|
||||
@@ -81,7 +79,6 @@ PHP_INI_BEGIN()
|
||||
STD_PHP_INI_ENTRY("assert.bail", "0", PHP_INI_ALL, OnUpdateBool, bail, zend_assert_globals, assert_globals)
|
||||
STD_PHP_INI_ENTRY("assert.warning", "1", PHP_INI_ALL, OnUpdateBool, warning, zend_assert_globals, assert_globals)
|
||||
PHP_INI_ENTRY("assert.callback", NULL, PHP_INI_ALL, OnChangeCallback)
|
||||
STD_PHP_INI_ENTRY("assert.quiet_eval", "0", PHP_INI_ALL, OnUpdateBool, quiet_eval, zend_assert_globals, assert_globals)
|
||||
STD_PHP_INI_ENTRY("assert.exception", "0", PHP_INI_ALL, OnUpdateBool, exception, zend_assert_globals, assert_globals)
|
||||
PHP_INI_END()
|
||||
|
||||
@@ -104,7 +101,6 @@ PHP_MINIT_FUNCTION(assert) /* {{{ */
|
||||
REGISTER_LONG_CONSTANT("ASSERT_CALLBACK", ASSERT_CALLBACK, CONST_CS|CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("ASSERT_BAIL", ASSERT_BAIL, CONST_CS|CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("ASSERT_WARNING", ASSERT_WARNING, CONST_CS|CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("ASSERT_QUIET_EVAL", ASSERT_QUIET_EVAL, CONST_CS|CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("ASSERT_EXCEPTION", ASSERT_EXCEPTION, CONST_CS|CONST_PERSISTENT);
|
||||
|
||||
INIT_CLASS_ENTRY(ce, "AssertionError", NULL);
|
||||
@@ -147,9 +143,6 @@ PHP_FUNCTION(assert)
|
||||
{
|
||||
zval *assertion;
|
||||
zval *description = NULL;
|
||||
int val;
|
||||
char *myeval = NULL;
|
||||
char *compiled_string_description;
|
||||
|
||||
if (! ASSERTG(active)) {
|
||||
RETURN_TRUE;
|
||||
@@ -161,51 +154,7 @@ PHP_FUNCTION(assert)
|
||||
Z_PARAM_ZVAL(description)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
if (Z_TYPE_P(assertion) == IS_STRING) {
|
||||
zval retval;
|
||||
int old_error_reporting = 0; /* shut up gcc! */
|
||||
|
||||
if (zend_forbid_dynamic_call("assert() with string argument") == FAILURE) {
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
php_error_docref(NULL, E_DEPRECATED, "Calling assert() with a string argument is deprecated");
|
||||
|
||||
myeval = Z_STRVAL_P(assertion);
|
||||
|
||||
if (ASSERTG(quiet_eval)) {
|
||||
old_error_reporting = EG(error_reporting);
|
||||
EG(error_reporting) = 0;
|
||||
}
|
||||
|
||||
compiled_string_description = zend_make_compiled_string_description("assert code");
|
||||
if (zend_eval_stringl(myeval, Z_STRLEN_P(assertion), &retval, compiled_string_description) == FAILURE) {
|
||||
efree(compiled_string_description);
|
||||
if (!description) {
|
||||
zend_throw_error(NULL, "Failure evaluating code: %s%s", PHP_EOL, myeval);
|
||||
} else {
|
||||
zend_string *str = zval_get_string(description);
|
||||
zend_throw_error(NULL, "Failure evaluating code: %s%s:\"%s\"", PHP_EOL, ZSTR_VAL(str), myeval);
|
||||
zend_string_release_ex(str, 0);
|
||||
}
|
||||
if (ASSERTG(bail)) {
|
||||
zend_bailout();
|
||||
}
|
||||
RETURN_FALSE;
|
||||
}
|
||||
efree(compiled_string_description);
|
||||
|
||||
if (ASSERTG(quiet_eval)) {
|
||||
EG(error_reporting) = old_error_reporting;
|
||||
}
|
||||
|
||||
convert_to_boolean(&retval);
|
||||
val = Z_TYPE(retval) == IS_TRUE;
|
||||
} else {
|
||||
val = zend_is_true(assertion);
|
||||
}
|
||||
|
||||
if (val) {
|
||||
if (zend_is_true(assertion)) {
|
||||
RETURN_TRUE;
|
||||
}
|
||||
|
||||
@@ -220,8 +169,8 @@ PHP_FUNCTION(assert)
|
||||
const char *filename = zend_get_executed_filename();
|
||||
|
||||
ZVAL_STRING(&args[0], SAFE_STRING(filename));
|
||||
ZVAL_LONG (&args[1], lineno);
|
||||
ZVAL_STRING(&args[2], SAFE_STRING(myeval));
|
||||
ZVAL_LONG(&args[1], lineno);
|
||||
ZVAL_NULL(&args[2]);
|
||||
|
||||
ZVAL_FALSE(&retval);
|
||||
|
||||
@@ -255,18 +204,10 @@ PHP_FUNCTION(assert)
|
||||
}
|
||||
} else if (ASSERTG(warning)) {
|
||||
if (!description) {
|
||||
if (myeval) {
|
||||
php_error_docref(NULL, E_WARNING, "Assertion \"%s\" failed", myeval);
|
||||
} else {
|
||||
php_error_docref(NULL, E_WARNING, "Assertion failed");
|
||||
}
|
||||
php_error_docref(NULL, E_WARNING, "Assertion failed");
|
||||
} else {
|
||||
zend_string *str = zval_get_string(description);
|
||||
if (myeval) {
|
||||
php_error_docref(NULL, E_WARNING, "%s: \"%s\" failed", ZSTR_VAL(str), myeval);
|
||||
} else {
|
||||
php_error_docref(NULL, E_WARNING, "%s failed", ZSTR_VAL(str));
|
||||
}
|
||||
php_error_docref(NULL, E_WARNING, "%s failed", ZSTR_VAL(str));
|
||||
zend_string_release_ex(str, 0);
|
||||
}
|
||||
}
|
||||
@@ -320,18 +261,6 @@ PHP_FUNCTION(assert_options)
|
||||
RETURN_LONG(oldint);
|
||||
break;
|
||||
|
||||
case ASSERT_QUIET_EVAL:
|
||||
oldint = ASSERTG(quiet_eval);
|
||||
if (ac == 2) {
|
||||
zend_string *value_str = zval_get_string(value);
|
||||
key = zend_string_init("assert.quiet_eval", sizeof("assert.quiet_eval")-1, 0);
|
||||
zend_alter_ini_entry_ex(key, value_str, PHP_INI_USER, PHP_INI_STAGE_RUNTIME, 0);
|
||||
zend_string_release_ex(key, 0);
|
||||
zend_string_release_ex(value_str, 0);
|
||||
}
|
||||
RETURN_LONG(oldint);
|
||||
break;
|
||||
|
||||
case ASSERT_WARNING:
|
||||
oldint = ASSERTG(warning);
|
||||
if (ac == 2) {
|
||||
|
||||
@@ -1,44 +1,41 @@
|
||||
--TEST--
|
||||
assert()
|
||||
--INI--
|
||||
error_reporting = 2039
|
||||
assert.active = 0
|
||||
assert.warning = 1
|
||||
assert.callback =
|
||||
assert.bail = 0
|
||||
assert.quiet_eval = 0
|
||||
--FILE--
|
||||
<?php
|
||||
function a($file,$line,$myev)
|
||||
function a($file, $line, $unused, $desc)
|
||||
{
|
||||
echo "assertion failed $line,\"$myev\"\n";
|
||||
echo "assertion failed $line,\"$desc\"\n";
|
||||
}
|
||||
|
||||
class a
|
||||
{
|
||||
function assert($file,$line,$myev)
|
||||
static function assert($file, $line, $unused, $desc)
|
||||
{
|
||||
echo "class assertion failed $line,\"$myev\"\n";
|
||||
echo "class assertion failed $line,\"$desc\"\n";
|
||||
}
|
||||
}
|
||||
|
||||
assert_options(ASSERT_ACTIVE,1);
|
||||
assert_options(ASSERT_QUIET_EVAL,1);
|
||||
assert_options(ASSERT_WARNING,0);
|
||||
|
||||
$a = 0;
|
||||
|
||||
assert_options(ASSERT_CALLBACK,"a");
|
||||
assert('$a != 0');
|
||||
assert($a != 0);
|
||||
|
||||
assert_options(ASSERT_CALLBACK,array("a","assert"));
|
||||
assert('$a != 0');
|
||||
assert($a != 0);
|
||||
|
||||
$obj = new a();
|
||||
assert_options(ASSERT_CALLBACK,array(&$obj,"assert"));
|
||||
assert('$a != 0');
|
||||
assert($a != 0);
|
||||
?>
|
||||
--EXPECT--
|
||||
assertion failed 22,"$a != 0"
|
||||
class assertion failed 25,"$a != 0"
|
||||
class assertion failed 29,"$a != 0"
|
||||
assertion failed 21,"assert($a != 0)"
|
||||
class assertion failed 24,"assert($a != 0)"
|
||||
class assertion failed 28,"assert($a != 0)"
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
--TEST--
|
||||
catch assert() errors
|
||||
--INI--
|
||||
assert.active=1
|
||||
assert.warning=1
|
||||
assert.callback=
|
||||
assert.bail=0
|
||||
assert.quiet_eval=0
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
assert(1);
|
||||
assert('1');
|
||||
assert('$a');
|
||||
|
||||
try {
|
||||
assert('aa=sd+as+safsafasfasafsaf');
|
||||
} catch (Throwable $e) {
|
||||
echo $e->getMessage(), "\n";
|
||||
}
|
||||
|
||||
assert('0');
|
||||
|
||||
assert_options(ASSERT_BAIL, 1);
|
||||
|
||||
try {
|
||||
assert('aa=sd+as+safsafasfasafsaf');
|
||||
} catch (Throwable $e) {
|
||||
echo $e->getMessage(), "\n";
|
||||
}
|
||||
|
||||
echo "done\n";
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
|
||||
Notice: Undefined variable: a in %sassert02.php(%d) : assert code on line 1
|
||||
|
||||
Warning: assert(): Assertion "$a" failed in %sassert02.php on line %d
|
||||
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
Failure evaluating code:
|
||||
aa=sd+as+safsafasfasafsaf
|
||||
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
|
||||
Warning: assert(): Assertion "0" failed in %sassert02.php on line %d
|
||||
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
|
||||
Fatal error: Uncaught ParseError: syntax error, unexpected '=', expecting ';' in %s(%d) : assert code:1
|
||||
Stack trace:
|
||||
#0 %s(%d): assert('aa=sd+as+safsaf...')
|
||||
#1 {main}
|
||||
|
||||
Next Error: Failure evaluating code:
|
||||
aa=sd+as+safsafasfasafsaf in %s:%d
|
||||
Stack trace:
|
||||
#0 %s(%d): assert('aa=sd+as+safsaf...')
|
||||
#1 {main}
|
||||
thrown in %s on line %d
|
||||
@@ -5,38 +5,33 @@ assert.active = 1
|
||||
assert.warning = 0
|
||||
assert.callback =
|
||||
assert.bail = 0
|
||||
assert.quiet_eval = 1
|
||||
--FILE--
|
||||
<?php
|
||||
function a($file,$line,$myev)
|
||||
function a($file, $line, $unused, $desc)
|
||||
{
|
||||
echo "assertion failed - a - $line,\"$myev\"\n";
|
||||
echo "assertion failed - a - $line,\"$desc\"\n";
|
||||
}
|
||||
|
||||
function b($file,$line,$myev)
|
||||
function b($file, $line, $unused, $desc)
|
||||
{
|
||||
echo "assertion failed - b - $line,\"$myev\"\n";
|
||||
echo "assertion failed - b - $line,\"$desc\"\n";
|
||||
}
|
||||
|
||||
assert_options(ASSERT_ACTIVE,1);
|
||||
assert_options(ASSERT_QUIET_EVAL,1);
|
||||
assert_options(ASSERT_WARNING,0);
|
||||
|
||||
$a = 0;
|
||||
|
||||
assert_options(ASSERT_CALLBACK,"a");
|
||||
assert('$a != 0');
|
||||
assert_options(ASSERT_CALLBACK, "a");
|
||||
assert($a != 0);
|
||||
|
||||
/* Modify call back using ini_set() */
|
||||
ini_set("assert.callback", "b");
|
||||
assert('$a != 0');
|
||||
assert($a != 0);
|
||||
|
||||
?>
|
||||
==DONE==
|
||||
--EXPECTF--
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
assertion failed - a - %d,"$a != 0"
|
||||
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
assertion failed - b - %d,"$a != 0"
|
||||
--EXPECT--
|
||||
assertion failed - a - 18,"assert($a != 0)"
|
||||
assertion failed - b - 22,"assert($a != 0)"
|
||||
==DONE==
|
||||
|
||||
@@ -5,7 +5,6 @@ assert.active = 1
|
||||
assert.warning = 1
|
||||
assert.callback =
|
||||
assert.bail = 0
|
||||
assert.quiet_eval = 0
|
||||
--FILE--
|
||||
<?php
|
||||
/* Assert not active */
|
||||
|
||||
@@ -5,29 +5,16 @@ assert.active = 1
|
||||
assert.warning = 0
|
||||
assert.callback = f1
|
||||
assert.bail = 0
|
||||
assert.quiet_eval = 0
|
||||
--FILE--
|
||||
<?php
|
||||
function f1()
|
||||
{
|
||||
echo "f1 called\n";
|
||||
}
|
||||
//String assert
|
||||
$sa = "0 != 0";
|
||||
var_dump($r2=assert($sa));
|
||||
$sa = "0 == 0";
|
||||
var_dump($r2=assert($sa));
|
||||
|
||||
//Non string assert
|
||||
var_dump($r2=assert(0));
|
||||
var_dump($r2=assert(1));
|
||||
--EXPECTF--
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
f1 called
|
||||
bool(false)
|
||||
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
bool(true)
|
||||
var_dump($r2 = assert(0));
|
||||
var_dump($r2 = assert(1));
|
||||
--EXPECT--
|
||||
f1 called
|
||||
bool(false)
|
||||
bool(true)
|
||||
|
||||
@@ -5,7 +5,6 @@ assert.active = 0
|
||||
assert.warning = 0
|
||||
assert.callback = f1
|
||||
assert.bail = 0
|
||||
assert.quiet_eval = 0
|
||||
--FILE--
|
||||
<?php
|
||||
function f1()
|
||||
@@ -13,17 +12,9 @@ function f1()
|
||||
echo "f1 called\n";
|
||||
}
|
||||
|
||||
//String assert
|
||||
$sa = "0 != 0";
|
||||
var_dump($r2=assert($sa));
|
||||
$sa = "0 == 0";
|
||||
var_dump($r2=assert($sa));
|
||||
|
||||
//Non string assert
|
||||
var_dump($r2=assert(0));
|
||||
var_dump($r2=assert(1));
|
||||
?>
|
||||
--EXPECT--
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(true)
|
||||
|
||||
@@ -5,7 +5,6 @@ assert.active = 1
|
||||
assert.warning = 1
|
||||
assert.callback=f1
|
||||
assert.bail = 0
|
||||
assert.quiet_eval = 0
|
||||
--FILE--
|
||||
<?php
|
||||
function f2()
|
||||
|
||||
@@ -4,7 +4,6 @@ assert() - basic - Test that bailout works
|
||||
assert.active = 1
|
||||
assert.warning = 1
|
||||
assert.callback = f1
|
||||
assert.quiet_eval = 1
|
||||
assert.bail = 0
|
||||
--FILE--
|
||||
<?php
|
||||
@@ -15,13 +14,10 @@ function f1()
|
||||
|
||||
//bail out on error
|
||||
var_dump($rao=assert_options(ASSERT_BAIL, 1));
|
||||
$sa = "0 != 0";
|
||||
var_dump($r2=assert($sa));
|
||||
var_dump($r2=assert(0 != 0));
|
||||
echo "If this is printed BAIL hasn't worked";
|
||||
--EXPECTF--
|
||||
int(0)
|
||||
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
f1 called
|
||||
|
||||
Warning: assert(): assert($sa): "0 != 0" failed in %s on line 10
|
||||
Warning: assert(): assert(0 != 0) failed in %s on line %d
|
||||
|
||||
@@ -4,7 +4,6 @@ assert() - basic - test initial values using ini.get and assert_options
|
||||
assert.active = 0
|
||||
assert.warning = 0
|
||||
assert.bail = 0
|
||||
assert.quiet_eval = 0
|
||||
assert.callback = f1
|
||||
--FILE--
|
||||
<?php
|
||||
@@ -14,23 +13,19 @@ assert.callback = f1
|
||||
echo "Initial values: assert_options(ASSERT_ACTIVE) => [".assert_options(ASSERT_ACTIVE)."]\n";
|
||||
echo "Initial values: assert_options(ASSERT_WARNING) => [".assert_options(ASSERT_WARNING)."]\n";
|
||||
echo "Initial values: assert_options(ASSERT_BAIL) => [".assert_options(ASSERT_BAIL)."]\n";
|
||||
echo "Initial values: assert_options(ASSERT_QUIET_EVAL) => [".assert_options(ASSERT_QUIET_EVAL)."]\n";
|
||||
echo "Initial values: assert_options(ASSERT_CALLBACK) => [".assert_options(ASSERT_CALLBACK)."]\n";
|
||||
|
||||
//Using ini.get;
|
||||
echo "Initial values: ini.get(\"assert.active\") => [".ini_get("assert.active")."]\n";
|
||||
echo "Initial values: ini.get(\"assert.warning\") => [".ini_get("assert.warning")."]\n";
|
||||
echo "Initial values: ini.get(\"assert.bail\") => [".ini_get("assert.bail")."]\n";
|
||||
echo "Initial values: ini.get(\"assert.quiet_eval\") => [".ini_get("assert.quiet_eval")."]\n";
|
||||
echo "Initial values: ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n\n";
|
||||
--EXPECT--
|
||||
Initial values: assert_options(ASSERT_ACTIVE) => [0]
|
||||
Initial values: assert_options(ASSERT_WARNING) => [0]
|
||||
Initial values: assert_options(ASSERT_BAIL) => [0]
|
||||
Initial values: assert_options(ASSERT_QUIET_EVAL) => [0]
|
||||
Initial values: assert_options(ASSERT_CALLBACK) => [f1]
|
||||
Initial values: ini.get("assert.active") => [0]
|
||||
Initial values: ini.get("assert.warning") => [0]
|
||||
Initial values: ini.get("assert.bail") => [0]
|
||||
Initial values: ini.get("assert.quiet_eval") => [0]
|
||||
Initial values: ini.get("assert.callback") => [f1]
|
||||
|
||||
@@ -5,7 +5,6 @@ assert.active = 1
|
||||
assert.warning = 0
|
||||
assert.callback = f1
|
||||
assert.bail = 0
|
||||
assert.quiet_eval = 0
|
||||
--FILE--
|
||||
<?php
|
||||
function f1()
|
||||
@@ -15,22 +14,16 @@ function f1()
|
||||
|
||||
//switch warning on and test return value
|
||||
var_dump($rao=assert_options(ASSERT_WARNING, 1));
|
||||
$sa = "0 != 0";
|
||||
var_dump($r2=assert($sa));
|
||||
$sa = "0 == 0";
|
||||
var_dump($r2=assert($sa));
|
||||
var_dump($r2=assert(0 != 0));
|
||||
var_dump($r2=assert(0 == 0));
|
||||
|
||||
//switch warning on and test return value
|
||||
var_dump($rao=assert_options(ASSERT_WARNING, 0));
|
||||
--EXPECTF--
|
||||
int(0)
|
||||
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
f1 called
|
||||
|
||||
Warning: assert(): assert($sa): "0 != 0" failed in %s on line 10
|
||||
Warning: assert(): assert(0 != 0) failed in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
bool(true)
|
||||
int(1)
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
--TEST--
|
||||
assert() - basic - Test that bailout works
|
||||
--INI--
|
||||
assert.active = 1
|
||||
assert.warning = 1
|
||||
assert.callback = f1
|
||||
assert.quiet_eval = 1
|
||||
assert.bail = 0
|
||||
--FILE--
|
||||
<?php
|
||||
function f1($message)
|
||||
{
|
||||
echo "f1 called\n";
|
||||
}
|
||||
|
||||
//bail out on error
|
||||
var_dump($rao = assert_options(ASSERT_BAIL, 1));
|
||||
$sa = "0 != 0";
|
||||
var_dump($r2 = assert($sa, "0 is 0"));
|
||||
echo "If this is printed BAIL hasn't worked";
|
||||
--EXPECTF--
|
||||
int(0)
|
||||
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
f1 called
|
||||
|
||||
Warning: assert(): 0 is 0: "0 != 0" failed in %s on line 10
|
||||
@@ -4,7 +4,6 @@ assert() - basic - accept closures as callback.
|
||||
assert.active = 1
|
||||
assert.warning = 1
|
||||
assert.bail = 0
|
||||
assert.quiet_eval = 0
|
||||
--FILE--
|
||||
<?php
|
||||
assert_options(ASSERT_CALLBACK, function () { echo "Hello World!\n"; });
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
--TEST--
|
||||
assert() - error - give assert nonsense string with quiet_eval on then off
|
||||
--INI--
|
||||
assert.active = 1
|
||||
assert.warning = 1
|
||||
assert.callback = f1
|
||||
assert.bail = 0
|
||||
assert.quiet_eval = 0
|
||||
--FILE--
|
||||
<?php
|
||||
function f1()
|
||||
{
|
||||
echo "f1 called\n";
|
||||
}
|
||||
|
||||
$sa = "threemeninaboat";
|
||||
|
||||
var_dump($r2=assert($sa));
|
||||
|
||||
var_dump($ra0 = assert_options(ASSERT_QUIET_EVAL, 1));
|
||||
|
||||
var_dump($r2=assert($sa));
|
||||
--EXPECTF--
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
|
||||
Warning: Use of undefined constant threemeninaboat - assumed 'threemeninaboat' (this will throw an Error in a future version of PHP) in %s(9) : assert code on line 1
|
||||
bool(true)
|
||||
int(0)
|
||||
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
bool(true)
|
||||
@@ -4,7 +4,6 @@ assert() - error - invalid params
|
||||
assert.active = 1
|
||||
assert.warning = 1
|
||||
assert.callback = f1
|
||||
assert.quiet_eval = 1
|
||||
assert.bail = 0
|
||||
--FILE--
|
||||
<?php
|
||||
@@ -22,10 +21,9 @@ var_dump($rao = assert_options(ASSERT_CALLBACK, "f1", 1));
|
||||
var_dump($rao=assert_options("F1", "f1"));
|
||||
|
||||
//Wrong number of parameters for assert()
|
||||
$sa="0 != 0";
|
||||
var_dump($r2 = assert($sa, "message", 1));
|
||||
var_dump($r2 = assert(0 != 0, "message", 1));
|
||||
|
||||
var_dump($rc = assert('aa=sd+as+safsafasfaçsafçsafç'));
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: assert_options() expects at most 2 parameters, 3 given in %s on line %d
|
||||
NULL
|
||||
@@ -35,5 +33,3 @@ NULL
|
||||
|
||||
Warning: assert() expects at most 2 parameters, 3 given in %s on line %d
|
||||
NULL
|
||||
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
|
||||
@@ -4,7 +4,6 @@ assert() - basic - Test that bailout works
|
||||
assert.active = 1
|
||||
assert.warning = 1
|
||||
assert.callback = f1
|
||||
assert.quiet_eval = 1
|
||||
assert.bail = 0
|
||||
error_reporting = -1
|
||||
display_errors = 1
|
||||
@@ -17,18 +16,10 @@ function f1($script, $line, $message, $user_message)
|
||||
|
||||
//bail out on error
|
||||
var_dump($rao = assert_options(ASSERT_BAIL, 1));
|
||||
var_dump($r2 = assert("0 != 0"));
|
||||
var_dump($r2 = assert(0 != 0));
|
||||
echo "If this is printed BAIL hasn't worked";
|
||||
--EXPECTF--
|
||||
int(0)
|
||||
f1 called
|
||||
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
|
||||
Warning: assert(): Assertion "0 != 0" failed in %s on line 9
|
||||
|
||||
Fatal error: Uncaught ArgumentCountError: Too few arguments to function f1(), 3 passed and exactly 4 expected in %sassert_error2.php:2
|
||||
Stack trace:
|
||||
#0 [internal function]: f1('%s', 9, '0 != 0')
|
||||
#1 %sassert_error2.php(9): assert('0 != 0')
|
||||
#2 {main}
|
||||
thrown in %sassert_error2.php on line 2
|
||||
Warning: assert(): assert(0 != 0) failed in %s on line %d
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
--TEST--
|
||||
assert() - basic - Test recoverable error
|
||||
--INI--
|
||||
assert.active = 1
|
||||
assert.warning = 1
|
||||
assert.callback = f1
|
||||
assert.quiet_eval = 0
|
||||
assert.bail = 0
|
||||
error_reporting = -1
|
||||
display_errors = 1
|
||||
--FILE--
|
||||
<?php
|
||||
var_dump($r2 = assert("0 $ 0"));
|
||||
--EXPECTF--
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
|
||||
Fatal error: Uncaught ParseError: syntax error, unexpected '$', expecting ';' in %s(%d) : assert code:1
|
||||
Stack trace:
|
||||
#0 %s(%d): assert('0 $ 0')
|
||||
#1 {main}
|
||||
|
||||
Next Error: Failure evaluating code:
|
||||
0 $ 0 in %s:%d
|
||||
Stack trace:
|
||||
#0 %s(%d): assert('0 $ 0')
|
||||
#1 {main}
|
||||
thrown in %s on line %d
|
||||
@@ -1,28 +0,0 @@
|
||||
--TEST--
|
||||
assert() - basic - Test recoverable error
|
||||
--INI--
|
||||
assert.active = 1
|
||||
assert.warning = 1
|
||||
assert.callback = f1
|
||||
assert.quiet_eval = 0
|
||||
assert.bail = 0
|
||||
error_reporting = -1
|
||||
display_errors = 1
|
||||
--FILE--
|
||||
<?php
|
||||
$sa = "0 $ 0";
|
||||
var_dump($r2 = assert($sa, "Describing what was asserted"));
|
||||
--EXPECTF--
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
|
||||
Fatal error: Uncaught ParseError: syntax error, unexpected '$', expecting ';' in %s(%d) : assert code:1
|
||||
Stack trace:
|
||||
#0 %s(%d): assert('0 $ 0', 'Describing what...')
|
||||
#1 {main}
|
||||
|
||||
Next Error: Failure evaluating code:
|
||||
Describing what was asserted:"0 $ 0" in %s:%d
|
||||
Stack trace:
|
||||
#0 %s(%d): assert('0 $ 0', 'Describing what...')
|
||||
#1 {main}
|
||||
thrown in %s on line %d
|
||||
@@ -5,7 +5,6 @@ assert.active = 1
|
||||
assert.warning = 0
|
||||
assert.callback = f1
|
||||
assert.bail = 0
|
||||
assert.quiet_eval = 0
|
||||
--FILE--
|
||||
<?php
|
||||
function f1()
|
||||
@@ -22,29 +21,28 @@ function f3()
|
||||
}
|
||||
class c1
|
||||
{
|
||||
function assert($file, $line, $myev)
|
||||
static function assert($file, $line, $unused, $desc)
|
||||
{
|
||||
echo "Class assertion failed $line, \"$myev\"\n";
|
||||
echo "Class assertion failed $line, \"$desc\"\n";
|
||||
}
|
||||
}
|
||||
echo "Initial values: assert_options(ASSERT_CALLBACK) => [".assert_options(ASSERT_CALLBACK)."]\n";
|
||||
echo "Initial values: ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n";
|
||||
$sa = "0 != 0";
|
||||
var_dump($r2=assert($sa));
|
||||
var_dump($r2=assert(0 != 0));
|
||||
echo"\n";
|
||||
|
||||
echo "Change callback function using ini.set and test return value \n";
|
||||
var_dump($rv = ini_set("assert.callback","f2"));
|
||||
echo "assert_options(ASSERT_CALLBACK) => [".assert_options(ASSERT_CALLBACK)."]\n";
|
||||
echo "ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n";
|
||||
var_dump($r2=assert($sa));
|
||||
var_dump($r2=assert(0 != 0));
|
||||
echo"\n";
|
||||
|
||||
echo "Change callback function using assert_options and test return value \n";
|
||||
var_dump($rv=assert_options(ASSERT_CALLBACK, "f3"));
|
||||
echo "assert_options(ASSERT_CALLBACK) => [".assert_options(ASSERT_CALLBACK)."]\n";
|
||||
echo "ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n";
|
||||
var_dump($r2=assert($sa));
|
||||
var_dump($r2=assert(0 != 0));
|
||||
echo"\n";
|
||||
|
||||
|
||||
@@ -52,14 +50,14 @@ echo "Reset the name of the callback routine to a class method and check that it
|
||||
var_dump($rc=assert_options(ASSERT_CALLBACK, "c1"));
|
||||
echo "assert_options(ASSERT_CALLBACK) => [".assert_options(ASSERT_CALLBACK)."]\n";
|
||||
echo "ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n";
|
||||
var_dump($r2=assert($sa));
|
||||
var_dump($r2=assert(0 != 0));
|
||||
echo"\n";
|
||||
|
||||
echo "Reset callback options to use a class method \n";
|
||||
var_dump($rc = assert_options(ASSERT_CALLBACK,array("c1","assert")));
|
||||
var_dump($rao=assert_options(ASSERT_CALLBACK));
|
||||
echo "ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n\n";
|
||||
var_dump($r2=assert($sa));
|
||||
var_dump($r2=assert(0 != 0));
|
||||
echo"\n";
|
||||
|
||||
echo "Reset callback options to use an object method \n";
|
||||
@@ -67,13 +65,11 @@ $o = new c1();
|
||||
var_dump($rc=assert_options(ASSERT_CALLBACK,array(&$o,"assert")));
|
||||
var_dump($rao=assert_options(ASSERT_CALLBACK));
|
||||
echo "ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n\n";
|
||||
var_dump($r2=assert($sa));
|
||||
var_dump($r2=assert(0 != 0));
|
||||
echo"\n";
|
||||
--EXPECTF--
|
||||
Initial values: assert_options(ASSERT_CALLBACK) => [f1]
|
||||
Initial values: ini.get("assert.callback") => [f1]
|
||||
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
f1 called
|
||||
bool(false)
|
||||
|
||||
@@ -81,8 +77,6 @@ Change callback function using ini.set and test return value
|
||||
string(2) "f1"
|
||||
assert_options(ASSERT_CALLBACK) => [f2]
|
||||
ini.get("assert.callback") => [f2]
|
||||
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
f2 called
|
||||
bool(false)
|
||||
|
||||
@@ -90,8 +84,6 @@ Change callback function using assert_options and test return value
|
||||
string(2) "f2"
|
||||
assert_options(ASSERT_CALLBACK) => [f3]
|
||||
ini.get("assert.callback") => [f2]
|
||||
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
f3 called
|
||||
bool(false)
|
||||
|
||||
@@ -99,8 +91,6 @@ Reset the name of the callback routine to a class method and check that it works
|
||||
string(2) "f3"
|
||||
assert_options(ASSERT_CALLBACK) => [c1]
|
||||
ini.get("assert.callback") => [f2]
|
||||
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Reset callback options to use a class method
|
||||
@@ -113,11 +103,7 @@ array(2) {
|
||||
}
|
||||
ini.get("assert.callback") => [f2]
|
||||
|
||||
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
|
||||
Deprecated: Non-static method c1::assert() should not be called statically in %s on line 53
|
||||
Class assertion failed 53, "0 != 0"
|
||||
Class assertion failed 52, "assert(0 != 0)"
|
||||
bool(false)
|
||||
|
||||
Reset callback options to use an object method
|
||||
@@ -136,7 +122,5 @@ array(2) {
|
||||
}
|
||||
ini.get("assert.callback") => [f2]
|
||||
|
||||
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
Class assertion failed 61, "0 != 0"
|
||||
Class assertion failed 60, "assert(0 != 0)"
|
||||
bool(false)
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
--TEST--
|
||||
Bug #73303: Scope not inherited by eval in assert()
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Test {
|
||||
public $prop;
|
||||
|
||||
public function main(){
|
||||
assert('self::checkCacheKey(get_object_vars($this))');
|
||||
echo 'Success';
|
||||
}
|
||||
private static function checkCacheKey($obj_properties){
|
||||
return count($obj_properties) == 1;
|
||||
}
|
||||
}
|
||||
|
||||
$obj = new Test();
|
||||
$obj->main();
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
Success
|
||||
@@ -1593,11 +1593,6 @@ zend.assertions = 1
|
||||
; http://php.net/assert.callback
|
||||
;assert.callback = 0
|
||||
|
||||
; Eval the expression with current error_reporting(). Set to true if you want
|
||||
; error_reporting(0) around the eval().
|
||||
; http://php.net/assert.quiet-eval
|
||||
;assert.quiet_eval = 0
|
||||
|
||||
[COM]
|
||||
; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs
|
||||
; http://php.net/com.typelib-file
|
||||
|
||||
@@ -1593,11 +1593,6 @@ zend.assertions = -1
|
||||
; http://php.net/assert.callback
|
||||
;assert.callback = 0
|
||||
|
||||
; Eval the expression with current error_reporting(). Set to true if you want
|
||||
; error_reporting(0) around the eval().
|
||||
; http://php.net/assert.quiet-eval
|
||||
;assert.quiet_eval = 0
|
||||
|
||||
[COM]
|
||||
; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs
|
||||
; http://php.net/com.typelib-file
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
--TEST--
|
||||
Bug #23922 (scope doesn't properly propagate into internal functions)
|
||||
--FILE--
|
||||
<?php
|
||||
class foo
|
||||
{
|
||||
public $foo = 1;
|
||||
|
||||
function as_string()
|
||||
{ assert('$this->foo == 1'); }
|
||||
|
||||
function as_expr()
|
||||
{ assert($this->foo == 1); }
|
||||
}
|
||||
|
||||
$foo = new foo();
|
||||
$foo->as_expr();
|
||||
$foo->as_string();
|
||||
?>
|
||||
--EXPECTF--
|
||||
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
|
||||
Reference in New Issue
Block a user