diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2019-01-28 16:35:04 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-01-29 09:42:59 +0100 |
commit | 9bc2cacf7f97b4fc235baa29d7c8cf7604fb39c1 (patch) | |
tree | 3a81dc33e96a5b3bbdb8d164a754fd0bfcb96736 | |
parent | 46d38aa7cd532864bf0a4c6e38c0228838d02c09 (diff) | |
download | php-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.
28 files changed, 54 insertions, 482 deletions
@@ -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 |