function test($test) {
return new class($test) {
public function __construct(public $test) {}
};
}
function test2($test) {
return new class($test) {
public function __construct(public $test) {}
};
}
function compare($a, $b) {
var_dump([
$a == $b,
$a === $b,
get_class($a) == get_class($b),
]);
}
compare(test(1), test(1)); // true, false, true,
compare(test(['abc']), test(1)); // false, false, true,
compare(test(1), test2('xx')); // false, false, false
compare(test('xx'), test2('xx')); // false, false, false
< /code>
Я объясняю это себе таким образом, что PHP просто заменяет там случайное имя. Таким образом, на самом деле есть просто класс с некоторым именем, и запуск одной и той же функции несколько раз не меняет имя, поэтому класс одинаково. класс, использующий один код, который имеет одинаковый синтаксис, но представляет собой разные классы. Потому что теперь я не могу представить, что копировать это и создать test3 ()
, test4 () , test5 () , ... , test50 () , и и Итак, в зависимости от того, сколько разных классов мне понадобится.
Я заметил, что анонимные классы, созданные с использованием того же метода, представляют собой те же классы. < /p> [code]function test($test) { return new class($test) { public function __construct(public $test) {} }; } function test2($test) { return new class($test) { public function __construct(public $test) {} }; }
compare(test(1), test(1)); // true, false, true, compare(test(['abc']), test(1)); // false, false, true, compare(test(1), test2('xx')); // false, false, false compare(test('xx'), test2('xx')); // false, false, false < /code> Я объясняю это себе таким образом, что PHP просто заменяет там случайное имя. Таким образом, на самом деле есть просто класс с некоторым именем, и запуск одной и той же функции несколько раз не меняет имя, поэтому класс одинаково. класс, использующий один код, который имеет одинаковый синтаксис, но представляет собой разные классы. Потому что теперь я не могу представить, что копировать это и создать test3 () [/code], test4 () , test5 () , ... , test50 () , и и Итак, в зависимости от того, сколько разных классов мне понадобится.
Я заметил, что анонимные классы, созданные с использованием того же метода, представляют собой те же классы.
function test($test) {
return new class($test) {
public function __construct(public $test) {}
};
}
function test2($test) {
return new...
Я заметил, что анонимные классы, созданные с использованием того же метода, представляют собой те же классы.
function test($test) {
return new class($test) {
public function __construct(public $test) {}
};
}
function test2($test) {
return new...
Я заметил, что анонимные классы, созданные с использованием того же метода, представляют собой те же классы.
function test($test) {
return new class($test) {
public function __construct(public $test) {}
};
}
function test2($test) {
return new...
Я заметил, что анонимные классы, созданные с использованием того же метода, представляют собой те же классы.
function test($test) {
return new class($test) {
public function __construct(public $test) {}
};
}
function test2($test) {
return new...
Могут ли вложенные классы или анонимные классы расширить класс или реализовать интерфейс в Java? Если так, есть ли какие -либо ограничения или вещи, о которых я должен знать? Я не очень хорошо знаком с вложенными классами, оценлю любые примеры или...