JavascriptProva

mercoledì 2 maggio 2018

Costanti in php

Le costanti in php...
Vediamole!

La parola chiave è define.
Creo una costante e la visualizzo fuori e dentro una funzione (le costanti dovrebbero essere visibili dappertutto).
<?php
define("PAROLACCIA","Vaffanculo");
echo PAROLACCIA;
echo "<br>";
function funzione(){
    echo PAROLACCIA." dentro la funzione";
}
funzione();
?> 
Vaffanculo
Vaffanculo dentro la funzione

Perfetto!

Ora faccio il confronto con una variabile.
<?php
define("PAROLACCIA","Vaffanculo");
$variabile="Stronzo";
echo PAROLACCIA;
echo "<br>";
echo $variabile;
echo "<br>";
function funzione(){
    echo PAROLACCIA." dentro la funzione";
    echo "<br>";
    echo $variabile;
}
funzione();
?>
Vaffanculo
Stronzo
Vaffanculo dentro la funzione

Notice: Undefined variable: variabile in /storage/ssd3/737/3147737/public_html/index.php on line 11
Per rendere leggibile la variabile (ripasso) ho due possibilità:

parola chiave global:
<?php
define("PAROLACCIA","Vaffanculo");
$variabile="Stronzo";
echo PAROLACCIA;
echo "<br>";
echo $variabile;
echo "<br>";
function funzione(){
    global $variabile;
    echo PAROLACCIA." dentro la funzione";
    echo "<br>";
    echo $variabile;
}
funzione();
?>
Vaffanculo
Stronzo
Vaffanculo dentro la funzione
Stronzo



attingendo all'array $GLOBALS.
<?php
define("PAROLACCIA","Vaffanculo");
$variabile="Stronzo";
echo PAROLACCIA;
echo "<br>";
echo $variabile;
echo "<br>";
function funzione(){
    echo PAROLACCIA." dentro la funzione";
    echo "<br>";
    echo $GLOBALS['variabile'];
}
funzione();
?>
Vaffanculo
Stronzo
Vaffanculo dentro la funzione
Stronzo

Perfetto!
Resta da vedere quel "case insensitive"...

Provo a scrivere in minuscolo il nome della costante:
<?php
define("PAROLACCIA","Vaffanculo");
echo PAROLACCIA;
echo "<br>";
function funzione(){
    echo parolaccia." dentro la funzione";
}
funzione();
?> 
E ottengo:
Vaffanculo

Notice: Use of undefined constant parolaccia - assumed 'parolaccia' in /storage/ssd3/737/3147737/public_html/index.php on line 6
parolaccia dentro la funzione

Ora definisco la costante con un true come terzo parametro, che rende il nome case insensitive:
<?php
define("PAROLACCIA","Vaffanculo",true);
echo PAROLACCIA;
echo "<br>";
function funzione(){
    echo parolaccia." dentro la funzione";
}
funzione();
?>
Vaffanculo
Vaffanculo dentro la funzione

ed ecco che il nome della costante non è più case sensitive ma si può scrivere anche in minuscolo.

Nessun commento:

Posta un commento