Anonymous classes share static space?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Greetings, All.

https://3v4l.org/vLjTI

<?php

function creator($var)
{
  return new class($var) {
    private static $var;
    function __construct($var)
    {
      static::$var = $var;
    }

    function __debugInfo()
    {
      return [
        "\0*\0var" => static::$var,
      ];
    }
  };
}

$a = creator('A');
$b = creator('B');
var_dump($a, $b, $a === $b);


> The output:

object(class@anonymous)#1 (1) {
  ["var":protected]=>
  string(1) "B"
}
object(class@anonymous)#2 (1) {
  ["var":protected]=>
  string(1) "B"
}
bool(false)


However, the output contradicting itself.
By behavior, the two objects are of the same class, by comparison - they are not.
Is this… intended behavior?


-- 
Sincerely Yours, Andrey Repin <anrdaemon@xxxxxxxxxxx>


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux