From 82e13b62f1eb8e9db0f1e48157e83b85e23c77f0 Mon Sep 17 00:00:00 2001 From: tianfenghan Date: Tue, 10 Feb 2026 12:53:36 +0800 Subject: [PATCH] =?UTF-8?q?test(increment):=20=E6=B7=BB=E5=8A=A0=E5=AD=97?= =?UTF-8?q?=E7=AC=A6=E4=B8=B2=E5=92=8C=E7=B1=BB=E5=9E=8B=E9=80=92=E5=A2=9E?= =?UTF-8?q?=E9=80=92=E5=87=8F=E6=93=8D=E4=BD=9C=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加字符串递增递减功能测试用例 - 添加各种数据类型递增递减操作测试 - 添加goto跳转语句基础功能测试 - 验证不同字符串值的递增递减行为 - 测试数组对象资源等类型的递增递减错误处理 - 包含空值布尔值数字等基本类型的操作验证 --- tests/zend/in-de-crement/incdec_strings.phpt | 102 +++++++++++++++++++ tests/zend/in-de-crement/incdec_types.phpt | 92 +++++++++++++++++ tests/zend/jump/jump01.phpt | 14 +++ 3 files changed, 208 insertions(+) create mode 100644 tests/zend/in-de-crement/incdec_strings.phpt create mode 100644 tests/zend/in-de-crement/incdec_types.phpt create mode 100644 tests/zend/jump/jump01.phpt diff --git a/tests/zend/in-de-crement/incdec_strings.phpt b/tests/zend/in-de-crement/incdec_strings.phpt new file mode 100644 index 00000000..8a57b5be --- /dev/null +++ b/tests/zend/in-de-crement/incdec_strings.phpt @@ -0,0 +1,102 @@ +--TEST-- +Inc/dec various strings +--FILE-- + +--EXPECTF-- +Using increment: +Initial value:string(0) "" +Result value:string(1) "1" +Initial value:string(1) " " +Result value:string(1) " " +Initial value:string(1) "0" +Result value:int(1) +Initial value:string(4) "15.5" +Result value:float(16.5) +Initial value:string(4) "1e10" +Result value:float(10000000001) +Initial value:string(4) "199A" +Result value:string(4) "199B" +Initial value:string(4) "A199" +Result value:string(4) "A200" +Initial value:string(4) "199Z" +Result value:string(4) "200A" +Initial value:string(4) "Z199" +Result value:string(4) "Z200" +Initial value:string(11) "Hello world" +Result value:string(11) "Hello worle" +Initial value:string(4) "🐘" +Result value:string(4) "🐘" +Using decrement: +Initial value:string(0) "" +Result value:int(-1) +Initial value:string(1) " " +Result value:string(1) " " +Initial value:string(1) "0" +Result value:int(-1) +Initial value:string(4) "15.5" +Result value:float(14.5) +Initial value:string(4) "1e10" +Result value:float(9999999999) +Initial value:string(4) "199A" +Result value:string(4) "199A" +Initial value:string(4) "A199" +Result value:string(4) "A199" +Initial value:string(4) "199Z" +Result value:string(4) "199Z" +Initial value:string(4) "Z199" +Result value:string(4) "Z199" +Initial value:string(11) "Hello world" +Result value:string(11) "Hello world" +Initial value:string(4) "🐘" +Result value:string(4) "🐘" diff --git a/tests/zend/in-de-crement/incdec_types.phpt b/tests/zend/in-de-crement/incdec_types.phpt new file mode 100644 index 00000000..4fe196ad --- /dev/null +++ b/tests/zend/in-de-crement/incdec_types.phpt @@ -0,0 +1,92 @@ +--TEST-- +Inc/dec various types +--FILE-- +getMessage(), PHP_EOL; + } + try { + $type--; + } catch (\TypeError $e) { + echo $e->getMessage(), PHP_EOL; + } +} + +echo "Using increment:\n"; +$values = [null, false, true, 0, 0.0, '', ' ', '0']; +foreach ($values as $value) { + echo "Initial value:"; + var_dump($value); + $value++; + echo "Result value:"; + var_dump($value); +} + +echo "Using decrement:\n"; +$values = [null, false, true, 0, 0.0, '', ' ', '0']; +foreach ($values as $value) { + echo "Initial value:"; + var_dump($value); + $value--; + echo "Result value:"; + var_dump($value); +} +?> +--EXPECTF-- +Cannot increment array +Cannot decrement array +Cannot increment stdClass +Cannot decrement stdClass +Cannot increment resource +Cannot decrement resource +Using increment: +Initial value:NULL +Result value:int(1) +Initial value:bool(false) + +Warning: Increment on type bool has no effect, this will change in the next major version of PHP in %s on line %d +Result value:bool(false) +Initial value:bool(true) + +Warning: Increment on type bool has no effect, this will change in the next major version of PHP in %s on line %d +Result value:bool(true) +Initial value:int(0) +Result value:int(1) +Initial value:float(0) +Result value:float(1) +Initial value:string(0) "" +Result value:string(1) "1" +Initial value:string(1) " " +Result value:string(1) " " +Initial value:string(1) "0" +Result value:int(1) +Using decrement: +Initial value:NULL + +Warning: Decrement on type null has no effect, this will change in the next major version of PHP in %s on line %d +Result value:NULL +Initial value:bool(false) + +Warning: Decrement on type bool has no effect, this will change in the next major version of PHP in %s on line %d +Result value:bool(false) +Initial value:bool(true) + +Warning: Decrement on type bool has no effect, this will change in the next major version of PHP in %s on line %d +Result value:bool(true) +Initial value:int(0) +Result value:int(-1) +Initial value:float(0) +Result value:float(-1) +Initial value:string(0) "" +Result value:int(-1) +Initial value:string(1) " " +Result value:string(1) " " +Initial value:string(1) "0" +Result value:int(-1) diff --git a/tests/zend/jump/jump01.phpt b/tests/zend/jump/jump01.phpt new file mode 100644 index 00000000..87dba88b --- /dev/null +++ b/tests/zend/jump/jump01.phpt @@ -0,0 +1,14 @@ +--TEST-- +jump 01: goto backward +--FILE-- + +--EXPECT-- +1: ok +2: ok +3: ok