Подтвердить что ты не робот

Можно ли переопределить PHP-константы?

Можно ли переопределить константы класса (в PHP)?

например.

class B {
const C_ThisIsAConstant = 1;
}

class A extends B {
 self::C_ThisIsAConstant = 2;
}
4b9b3361

Ответ 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);

Он выводит int(2).

http://codepad.org/GQR9HI5M