- 添加字符串递增递减功能测试用例 - 添加各种数据类型递增递减操作测试 - 添加goto跳转语句基础功能测试 - 验证不同字符串值的递增递减行为 - 测试数组对象资源等类型的递增递减错误处理 - 包含空值布尔值数字等基本类型的操作验证pull/1/head
parent
e0a4e2f977
commit
82e13b62f1
3 changed files with 208 additions and 0 deletions
@ -0,0 +1,102 @@ |
|||||||
|
--TEST-- |
||||||
|
Inc/dec various strings |
||||||
|
--FILE-- |
||||||
|
<?php |
||||||
|
|
||||||
|
echo "Using increment:\n"; |
||||||
|
$values = [ |
||||||
|
'', |
||||||
|
' ', |
||||||
|
// Numeric-ish values |
||||||
|
'0', |
||||||
|
'15.5', |
||||||
|
'1e10', |
||||||
|
// Alphanumeric values |
||||||
|
'199A', |
||||||
|
'A199', |
||||||
|
'199Z', |
||||||
|
'Z199', |
||||||
|
// Strings |
||||||
|
'Hello world', |
||||||
|
'🐘' |
||||||
|
]; |
||||||
|
foreach ($values as $value) { |
||||||
|
echo "Initial value:"; |
||||||
|
var_dump($value); |
||||||
|
$value++; |
||||||
|
echo "Result value:"; |
||||||
|
var_dump($value); |
||||||
|
} |
||||||
|
|
||||||
|
echo "Using decrement:\n"; |
||||||
|
$values = [ |
||||||
|
'', |
||||||
|
' ', |
||||||
|
// Numeric-ish values |
||||||
|
'0', |
||||||
|
'15.5', |
||||||
|
'1e10', |
||||||
|
// Alphanumeric values |
||||||
|
'199A', |
||||||
|
'A199', |
||||||
|
'199Z', |
||||||
|
'Z199', |
||||||
|
// Strings |
||||||
|
'Hello world', |
||||||
|
'🐘' |
||||||
|
]; |
||||||
|
foreach ($values as $value) { |
||||||
|
echo "Initial value:"; |
||||||
|
var_dump($value); |
||||||
|
$value--; |
||||||
|
echo "Result value:"; |
||||||
|
var_dump($value); |
||||||
|
} |
||||||
|
?> |
||||||
|
--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) "🐘" |
||||||
@ -0,0 +1,92 @@ |
|||||||
|
--TEST-- |
||||||
|
Inc/dec various types |
||||||
|
--FILE-- |
||||||
|
<?php |
||||||
|
|
||||||
|
/* Type errors */ |
||||||
|
$types = [[], new stdClass(), fopen(__FILE__, 'r')]; |
||||||
|
|
||||||
|
foreach ($types as $type) { |
||||||
|
try { |
||||||
|
$type++; |
||||||
|
} catch (\TypeError $e) { |
||||||
|
echo $e->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) |
||||||
@ -0,0 +1,14 @@ |
|||||||
|
--TEST-- |
||||||
|
jump 01: goto backward |
||||||
|
--FILE-- |
||||||
|
<?php |
||||||
|
$n = 1; |
||||||
|
L1: |
||||||
|
echo "$n: ok\n"; |
||||||
|
$n++; |
||||||
|
if ($n <= 3) goto L1; |
||||||
|
?> |
||||||
|
--EXPECT-- |
||||||
|
1: ok |
||||||
|
2: ok |
||||||
|
3: ok |
||||||
Loading…
Reference in new issue