parent
be5cc71a8b
commit
8d3d1febc2
8 changed files with 96 additions and 13 deletions
@ -0,0 +1,7 @@ |
||||
<?php |
||||
|
||||
function main(): void |
||||
{ |
||||
$value = std::int(1); |
||||
$value[0] = 'invalid'; |
||||
} |
||||
@ -0,0 +1,8 @@ |
||||
<?php |
||||
use native_types; |
||||
|
||||
function main(): void |
||||
{ |
||||
$value = false; |
||||
$value[] = 'invalid'; |
||||
} |
||||
@ -0,0 +1,8 @@ |
||||
<?php |
||||
use native_types; |
||||
|
||||
function main(): void |
||||
{ |
||||
$value = 1.5; |
||||
$value[0] = 'invalid'; |
||||
} |
||||
@ -0,0 +1,8 @@ |
||||
<?php |
||||
use native_types; |
||||
|
||||
function main(): void |
||||
{ |
||||
$value = 1; |
||||
$value[] = 'invalid'; |
||||
} |
||||
@ -0,0 +1,33 @@ |
||||
--TEST-- |
||||
Dynamic scalar offset writes fail instead of being silently ignored |
||||
--FILE-- |
||||
<?php |
||||
|
||||
function expectOffsetWriteError(mixed $value, string $label): void |
||||
{ |
||||
try { |
||||
$value[] = 'invalid'; |
||||
echo $label, ":missing-error\n"; |
||||
} catch (Error $error) { |
||||
echo $label, ":error\n"; |
||||
} |
||||
} |
||||
|
||||
function main(): void |
||||
{ |
||||
expectOffsetWriteError(1, 'int'); |
||||
expectOffsetWriteError(1.5, 'float'); |
||||
expectOffsetWriteError(false, 'bool'); |
||||
expectOffsetWriteError(new stdClass(), 'object'); |
||||
|
||||
$value = null; |
||||
$value[] = 'valid'; |
||||
echo 'null:', $value[0], "\n"; |
||||
} |
||||
?> |
||||
--EXPECT-- |
||||
int:error |
||||
float:error |
||||
bool:error |
||||
object:error |
||||
null:valid |
||||
Loading…
Reference in new issue