[php-src] Issue #10907: Unable to serialize processed SplFixedArrays in PHP 8.2.4
| From: | codex-m | Date: | Wed, 22 Mar 2023 17:20:21 +0000 |
| Subject: | [php-src] Issue #10907: Unable to serialize processed SplFixedArrays in PHP 8.2.4 | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-243970@lists.php.net to get a copy of this message | ||
Issue: https://github.com/php/php-src/issues/10907
Author: codex-m
### Description
The following code:
```php
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$array = new SplFixedArray(5);
$array[1] = 2;
$array[2] = "test value";
$copy = $array;
$serialized_one = serialize($array);
$object_vars = get_object_vars($array);
foreach ($object_vars as $property_name => $property_value) {
$copy[$property_name] = $property_value;
}
$serialized_two = '';
if ($copy === $array) {
$serialized_two = serialize($copy);
}
if ($serialized_one === $serialized_two) {
echo "PHP version " . phpversion() . " is ok";
}
```
Resulted in this output:
```
500 internal server error or no output
```
But I expected this output instead:
```
PHP version 8.2.4 is ok
```
Notes:
- The above test code works in all commonly active versions: PHP 8.1, PHP 8.0 and PHP 7.4. However
the above code does not work only in PHP 8.2.4.
- Originally reproduced with Ubuntu 20.04 + PHP 8.2.4.
- This is also reproducible in PHP Windows environment using PHP 8.2.4 .
I've check the upgrade notes on PHP 8.2.4. There is nothing that mention between
serialize() and SplFixedArray. I'm still learning more about PHP 8.2,
so please help me confirm if this is a bug or simply a usage issue. Thank you!
### PHP Version
PHP 8.2.4
### Operating System
Ubuntu 20.04 / Windows 10