<?php
class Role
{
public $public;
protected $protected;
private $private;
public function __construct($prop)
{
$this->public = $prop;
$this->protected = $prop;
$this->private = $prop;
}
}
$test = [(new Role(false)), (new Role(1)), (new Role(null)), (new Role("1")), (new Role(2)), (new Role(0))];
var_export(
array_unique($test, SORT_REGULAR)
);
echo "\n---\n";
var_export(
array_filter(
$test,
fn($o, $k) => array_search($o, $test, true) === $k,
ARRAY_FILTER_USE_BOTH
)
);
- Output for 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- array (
0 =>
\Role::__set_state(array(
'public' => false,
'protected' => false,
'private' => false,
)),
1 =>
\Role::__set_state(array(
'public' => 1,
'protected' => 1,
'private' => 1,
)),
4 =>
\Role::__set_state(array(
'public' => 2,
'protected' => 2,
'private' => 2,
)),
)
---
array (
0 =>
\Role::__set_state(array(
'public' => false,
'protected' => false,
'private' => false,
)),
1 =>
\Role::__set_state(array(
'public' => 1,
'protected' => 1,
'private' => 1,
)),
2 =>
\Role::__set_state(array(
'public' => NULL,
'protected' => NULL,
'private' => NULL,
)),
3 =>
\Role::__set_state(array(
'public' => '1',
'protected' => '1',
'private' => '1',
)),
4 =>
\Role::__set_state(array(
'public' => 2,
'protected' => 2,
'private' => 2,
)),
5 =>
\Role::__set_state(array(
'public' => 0,
'protected' => 0,
'private' => 0,
)),
)
- Output for 8.1.0 - 8.1.33
- array (
0 =>
Role::__set_state(array(
'public' => false,
'protected' => false,
'private' => false,
)),
1 =>
Role::__set_state(array(
'public' => 1,
'protected' => 1,
'private' => 1,
)),
4 =>
Role::__set_state(array(
'public' => 2,
'protected' => 2,
'private' => 2,
)),
)
---
array (
0 =>
Role::__set_state(array(
'public' => false,
'protected' => false,
'private' => false,
)),
1 =>
Role::__set_state(array(
'public' => 1,
'protected' => 1,
'private' => 1,
)),
2 =>
Role::__set_state(array(
'public' => NULL,
'protected' => NULL,
'private' => NULL,
)),
3 =>
Role::__set_state(array(
'public' => '1',
'protected' => '1',
'private' => '1',
)),
4 =>
Role::__set_state(array(
'public' => 2,
'protected' => 2,
'private' => 2,
)),
5 =>
Role::__set_state(array(
'public' => 0,
'protected' => 0,
'private' => 0,
)),
)
preferences:
63.78 ms | 411 KiB | 5 Q