È ansible ridefinire le costanti PHP?

È ansible ridefinire le costanti di class (in PHP)?

per esempio

class B { const C_ThisIsAConstant = 1; } class A extends B { self::C_ThisIsAConstant = 2; } 

No certo che no. Quindi non sarebbero "costanti".

Non è ansible ridefinire le "costanti" perché sono contant.

Se stai cercando di modificare una costante definita in un file incluso, puoi definire la costante prima dell'inserimento:

 define ("PROCESS_NAME", "MIKE"); /* ... code ... */ include ("/path/to/included_file.php"); // also defines "PROCESS_NAME" /* ... code ... */ 

PROCESS_NAME sarà "MIKE".

Primo: No, non è ansible ridefinire le costanti di class. È imansible in each lingua, perché altrimenti una costante non sarebbe costante.

Ma quello che stai facendo è ansible, perché non ridefinisci una costante di class, ma definisci una costante unica per each class.

 <?php class B { const C_ThisIsAConstant = 1; } class A extends B { const C_ThisIsAConstant = 2; } var_dump(A::C_ThisIsAConstant); 

Emette int(2) .

http://codepad.org/GQR9HI5M

Ho pubblicato il mio framework YAPAF su github.com. Chiamiamolo alfa-stato. In each caso, YAPAF è in grado di modificare il valore di una costante di class (vedere https://github.com/SchulteMarkus/YAPAF/blob/master/tests/ManipulateConstantTest.php ).