class B {
const C_ThisIsAConstant = 1;
}
class A extends B {
self::C_ThisIsAConstant = 2;
}
Ответ 1
Нет, конечно нет. Тогда они не будут "константами".
Ответ 2
Вы не можете переопределить "константы", потому что они ограничены.
Если вы пытаетесь изменить константу, определенную во включенном файле, вы можете определить константу перед включением:
define ("PROCESS_NAME", "MIKE");
/* ... code ... */
include ("/path/to/included_file.php"); // also defines "PROCESS_NAME"
/* ... code ... */
PROCESS_NAME будет "MIKE".
Ответ 3
Сначала: Нет, переопределить константы класса невозможно. Его невозможно на каждом языке, потому что иначе константа не будет постоянной.
Но то, что вы делаете, возможно, потому что вы не переопределяете константу класса, вместо этого вы определяете одну уникальную константу для каждого класса.
Ответ 4
<?php
class B {
const C_ThisIsAConstant = 1;
}
class A extends B {
const C_ThisIsAConstant = 2;
}
var_dump(A::C_ThisIsAConstant);