<?php
declare(strict_types=1); // so only PHP 7 will show up
class FooBar {
private $x;
public function __construct() {
var_dump($this);
echo "Let's remove a property!", PHP_EOL;
unset($this->x);
var_dump($this);
echo "Let's add a property!", PHP_EOL;
$this->x = 2;
var_dump($this);
echo "Where did the private come from?", PHP_EOL;
}
}
$foobar = new Foobar;
object(FooBar)#1 (1) {
["x":"FooBar":private]=>
NULL
}
Let's remove a property!
object(FooBar)#1 (0) {
}
Let's add a property!
object(FooBar)#1 (1) {
["x":"FooBar":private]=>
int(2)
}
Where did the private come from?
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
object(FooBar)#1 (1) {
["x":"FooBar":private]=>
NULL
}
Let's remove a property!
object(FooBar)#1 (0) {
}
Let's add a property!
object(FooBar)#1 (1) {
["x":"FooBar":private]=>
int(2)
}
Where did the private come from?
Output for 5.5.24 - 5.5.35, 5.6.8 - 5.6.28
Warning: Unsupported declare 'strict_types' in /in/isr4h on line 3
object(FooBar)#1 (1) {
["x":"FooBar":private]=>
NULL
}
Let's remove a property!
object(FooBar)#1 (0) {
}
Let's add a property!
object(FooBar)#1 (1) {
["x":"FooBar":private]=>
int(2)
}
Where did the private come from?