Costanti PHP
Le costanti in PHP sono come le variabili, con alcune differenze:
- Una volta definite non possono essere più modificate.
- Non iniziano con il segno del $.
- Effettua distinzione tra maiuscole e minuscole ( da php 8.0 ).
- Per convenzione gli identificatori della costante sono scritti sempre in maiuscolo.
- Possono iniziare con una lettera o con il carattere di sottolineatura, ma non con un numero.
- La portata di una costante è globale**, nel senso che si può accedere alle costanti in qualsiasi punto dello script.
Si creano con la funzione define()
<?php
define("OWNER", "Mister Rossi");
echo OWNER
?>
Risultato:
Mister Rossi
Costanti magiche di PHP
Sono costanti predefinite da PHP che:
- Possono cambiare di valore secondo la loro posizione
- Non effettuano distinzione tra maiuscole e minuscole
- Hanno doppia sottolineatura all’inizio e fine
__LINE__ : restituisce il numero di riga in cui è inserito
<?php
echo "The Line number is : ". __LINE__;
?>
Risultato:
The line number is 5
__DIR__ : restituisce la directory in cui è inserito
<?php
echo "This directory is : ". __DIR__;
?>
Risultato:
This directory is: C:\xampp\htdocs\mysite
__FILE__ : restituisce il nome del file e la directory in cui è inserito
<?php
echo "This file is : ". __FILE__;
?>
Risultato:
This file is: C:\xampp\htdocs\mysite\test.php
__CLASS__ : restituisce il nome della classe in cui è inserito
<?php
class HelloWorld {
public function myFunction() {
echo __CLASS__;
}
}
$x = new HelloWorld;
$x->myFunction();
?>
Risultato:
HelloWorld
__METHOD__ : restituisce il nome della classe insieme al nome della funzione in cui è inserito.
<?php
class HelloWorld {
public function myFunction() {
return __METHOD__;
}
}
$x = new HelloWorld;
echo $x->myFunction();
?>
Risultato:
HelloWorld::myFunction
__FUNCTION__ : restituisce il nome della funzione in cui è inserito
<?php
function helloWorld() {
echo __FUNCTION__;
}
helloWorld();
?>
Risultato:
HelloWorld
__NAMESPACE__ : restituisce il nome del namespace in cui è inserito
<?php
namespace myArea;
function myValue(){
return __NAMESPACE__;
}
echo myValue();
?>
Risultato:
myArea
__TRAIT__ : restituisce il nome del trait in cui è inserito
<?php
trait helloWorld {
function myFunction() {
echo __TRAIT__;
}
}
class myClass {
use helloWorld;
}
$x = new myClass;
$x->myFunction();
?>
Risultato:
helloWorld