summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-01-28 16:35:04 +0100
committerNikita Popov <nikita.ppv@gmail.com>2019-01-29 09:42:59 +0100
commit9bc2cacf7f97b4fc235baa29d7c8cf7604fb39c1 (patch)
tree3a81dc33e96a5b3bbdb8d164a754fd0bfcb96736
parent46d38aa7cd532864bf0a4c6e38c0228838d02c09 (diff)
downloadphp-git-9bc2cacf7f97b4fc235baa29d7c8cf7604fb39c1.tar.gz
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.
-rw-r--r--UPGRADING5
-rw-r--r--Zend/tests/assert/bug70208.phpt24
-rw-r--r--Zend/tests/assert/indirect_var_access_misoptimization.phpt21
-rw-r--r--Zend/tests/dynamic_call_006.phpt5
-rw-r--r--ext/opcache/Optimizer/zend_optimizer.c2
-rw-r--r--ext/standard/assert.c81
-rw-r--r--ext/standard/tests/assert/assert.phpt23
-rw-r--r--ext/standard/tests/assert/assert02.phpt64
-rw-r--r--ext/standard/tests/assert/assert03.phpt25
-rw-r--r--ext/standard/tests/assert/assert04.phpt1
-rw-r--r--ext/standard/tests/assert/assert_basic.phpt19
-rw-r--r--ext/standard/tests/assert/assert_basic1.phpt11
-rw-r--r--ext/standard/tests/assert/assert_basic2.phpt1
-rw-r--r--ext/standard/tests/assert/assert_basic3.phpt8
-rw-r--r--ext/standard/tests/assert/assert_basic4.phpt5
-rw-r--r--ext/standard/tests/assert/assert_basic5.phpt13
-rw-r--r--ext/standard/tests/assert/assert_basic6.phpt27
-rw-r--r--ext/standard/tests/assert/assert_closures.phpt1
-rw-r--r--ext/standard/tests/assert/assert_error.phpt31
-rw-r--r--ext/standard/tests/assert/assert_error1.phpt8
-rw-r--r--ext/standard/tests/assert/assert_error2.phpt15
-rw-r--r--ext/standard/tests/assert/assert_error3.phpt27
-rw-r--r--ext/standard/tests/assert/assert_error4.phpt28
-rw-r--r--ext/standard/tests/assert/assert_variation.phpt36
-rw-r--r--ext/standard/tests/assert/bug73303.phpt24
-rw-r--r--php.ini-development5
-rw-r--r--php.ini-production5
-rw-r--r--tests/lang/bug23922.phpt21
28 files changed, 54 insertions, 482 deletions
diff --git a/UPGRADING b/UPGRADING
index ca9a13429d..d587809648 100644
--- a/UPGRADING
+++ b/UPGRADING
@@ -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.
========================================
diff --git a/Zend/tests/assert/bug70208.phpt b/Zend/tests/assert/bug70208.phpt
deleted file mode 100644
index 6b7dfaeb33..0000000000
--- a/Zend/tests/assert/bug70208.phpt
+++ /dev/null
@@ -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)
diff --git a/Zend/tests/assert/indirect_var_access_misoptimization.phpt b/Zend/tests/assert/indirect_var_access_misoptimization.phpt
deleted file mode 100644
index 02327f30c0..0000000000
--- a/Zend/tests/assert/indirect_var_access_misoptimization.phpt
+++ /dev/null
@@ -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)
diff --git a/Zend/tests/dynamic_call_006.phpt b/Zend/tests/dynamic_call_006.phpt
index a1371eeebe..7a2872bcca 100644
--- a/Zend/tests/dynamic_call_006.phpt
+++ b/Zend/tests/dynamic_call_006.phpt
@@ -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
diff --git a/ext/opcache/Optimizer/zend_optimizer.c b/ext/opcache/Optimizer/zend_optimizer.c
index 0fb10c4408..5c4acad817 100644
--- a/ext/opcache/Optimizer/zend_optimizer.c
+++ b/ext/opcache/Optimizer/zend_optimizer.c
@@ -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")) {
diff --git a/ext/standard/assert.c b/ext/standard/assert.c
index 005fda4b56..d9f4fb9999 100644
--- a/ext/standard/assert.c
+++ b/ext/standard/assert.c
@@ -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) {
diff --git a/ext/standard/tests/assert/assert.phpt b/ext/standard/tests/assert/assert.phpt
index 08e1188d60..71b0649141 100644
--- a/ext/standard/tests/assert/assert.phpt
+++ b/ext/standard/tests/assert/assert.phpt
@@ -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)"
diff --git a/ext/standard/tests/assert/assert02.phpt b/ext/standard/tests/assert/assert02.phpt
deleted file mode 100644
index 85b72369cb..0000000000
--- a/ext/standard/tests/assert/assert02.phpt
+++ /dev/null
@@ -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
diff --git a/ext/standard/tests/assert/assert03.phpt b/ext/standard/tests/assert/assert03.phpt
index 80c42df473..3b231405f6 100644
--- a/ext/standard/tests/assert/assert03.phpt
+++ b/ext/standard/tests/assert/assert03.phpt
@@ -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==
diff --git a/ext/standard/tests/assert/assert04.phpt b/ext/standard/tests/assert/assert04.phpt
index 0100229958..f20aaf8e2b 100644
--- a/ext/standard/tests/assert/assert04.phpt
+++ b/ext/standard/tests/assert/assert04.phpt
@@ -5,7 +5,6 @@ assert.active = 1
assert.warning = 1
assert.callback =
assert.bail = 0
-assert.quiet_eval = 0
--FILE--
<?php
/* Assert not active */
diff --git a/ext/standard/tests/assert/assert_basic.phpt b/ext/standard/tests/assert/assert_basic.phpt
index 73b3e73206..ce53a17a61 100644
--- a/ext/standard/tests/assert/assert_basic.phpt
+++ b/ext/standard/tests/assert/assert_basic.phpt
@@ -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)
diff --git a/ext/standard/tests/assert/assert_basic1.phpt b/ext/standard/tests/assert/assert_basic1.phpt
index a5bcda3316..cd4a5601ab 100644
--- a/ext/standard/tests/assert/assert_basic1.phpt
+++ b/ext/standard/tests/assert/assert_basic1.phpt
@@ -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)
diff --git a/ext/standard/tests/assert/assert_basic2.phpt b/ext/standard/tests/assert/assert_basic2.phpt
index d6c150d0d0..052e7d4e89 100644
--- a/ext/standard/tests/assert/assert_basic2.phpt
+++ b/ext/standard/tests/assert/assert_basic2.phpt
@@ -5,7 +5,6 @@ assert.active = 1
assert.warning = 1
assert.callback=f1
assert.bail = 0
-assert.quiet_eval = 0
--FILE--
<?php
function f2()
diff --git a/ext/standard/tests/assert/assert_basic3.phpt b/ext/standard/tests/assert/assert_basic3.phpt
index a7fd990cbe..87103cbfbb 100644
--- a/ext/standard/tests/assert/assert_basic3.phpt
+++ b/ext/standard/tests/assert/assert_basic3.phpt
@@ -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
diff --git a/ext/standard/tests/assert/assert_basic4.phpt b/ext/standard/tests/assert/assert_basic4.phpt
index 4e78cf9ec1..289c51860e 100644
--- a/ext/standard/tests/assert/assert_basic4.phpt
+++ b/ext/standard/tests/assert/assert_basic4.phpt
@@ -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]
diff --git a/ext/standard/tests/assert/assert_basic5.phpt b/ext/standard/tests/assert/assert_basic5.phpt
index f4943cdf16..cf2ed6ded3 100644
--- a/ext/standard/tests/assert/assert_basic5.phpt
+++ b/ext/standard/tests/assert/assert_basic5.phpt
@@ -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)
diff --git a/ext/standard/tests/assert/assert_basic6.phpt b/ext/standard/tests/assert/assert_basic6.phpt
deleted file mode 100644
index 216c85c94b..0000000000
--- a/ext/standard/tests/assert/assert_basic6.phpt
+++ /dev/null
@@ -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
diff --git a/ext/standard/tests/assert/assert_closures.phpt b/ext/standard/tests/assert/assert_closures.phpt
index 4a013283a8..13a7e5415e 100644
--- a/ext/standard/tests/assert/assert_closures.phpt
+++ b/ext/standard/tests/assert/assert_closures.phpt
@@ -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"; });
diff --git a/ext/standard/tests/assert/assert_error.phpt b/ext/standard/tests/assert/assert_error.phpt
deleted file mode 100644
index 6e04060765..0000000000
--- a/ext/standard/tests/assert/assert_error.phpt
+++ /dev/null
@@ -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)
diff --git a/ext/standard/tests/assert/assert_error1.phpt b/ext/standard/tests/assert/assert_error1.phpt
index 55879e8427..a30356f9f7 100644
--- a/ext/standard/tests/assert/assert_error1.phpt
+++ b/ext/standard/tests/assert/assert_error1.phpt
@@ -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
diff --git a/ext/standard/tests/assert/assert_error2.phpt b/ext/standard/tests/assert/assert_error2.phpt
index d1b6f1745f..de00743b1b 100644
--- a/ext/standard/tests/assert/assert_error2.phpt
+++ b/ext/standard/tests/assert/assert_error2.phpt
@@ -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
diff --git a/ext/standard/tests/assert/assert_error3.phpt b/ext/standard/tests/assert/assert_error3.phpt
deleted file mode 100644
index 24538f4b04..0000000000
--- a/ext/standard/tests/assert/assert_error3.phpt
+++ /dev/null
@@ -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
diff --git a/ext/standard/tests/assert/assert_error4.phpt b/ext/standard/tests/assert/assert_error4.phpt
deleted file mode 100644
index 59b4df6935..0000000000
--- a/ext/standard/tests/assert/assert_error4.phpt
+++ /dev/null
@@ -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
diff --git a/ext/standard/tests/assert/assert_variation.phpt b/ext/standard/tests/assert/assert_variation.phpt
index 023f6690c5..d0cb90ff66 100644
--- a/ext/standard/tests/assert/assert_variation.phpt
+++ b/ext/standard/tests/assert/assert_variation.phpt
@@ -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)
diff --git a/ext/standard/tests/assert/bug73303.phpt b/ext/standard/tests/assert/bug73303.phpt
deleted file mode 100644
index 7264f5a322..0000000000
--- a/ext/standard/tests/assert/bug73303.phpt
+++ /dev/null
@@ -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
diff --git a/php.ini-development b/php.ini-development
index d7445e6d9b..81148ffb30 100644
--- a/php.ini-development
+++ b/php.ini-development
@@ -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
diff --git a/php.ini-production b/php.ini-production
index 5b7f827aa3..449361f88f 100644
--- a/php.ini-production
+++ b/php.ini-production
@@ -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
diff --git a/tests/lang/bug23922.phpt b/tests/lang/bug23922.phpt
deleted file mode 100644
index 22c4aaa7d4..0000000000
--- a/tests/lang/bug23922.phpt
+++ /dev/null
@@ -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