- 添加字符串递增递减功能测试用例 - 添加各种数据类型递增递减操作测试 - 添加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