Considerate il mio esempio:
Codice PHP:
session_start();
$stringa = 'prova';
$globale = 'pippo';
function scope_test ( $text_to_show='empty', $text_to_concat ) {
global $globale;
$text_to_concat = $globale;
return $text_to_show . ' ' . $text_to_concat;
}
echo scope_test ($stringa); // expected: prova pippo
Effettivamente viene stampato a video "prova pippo", ma (giustamente) viene lanciato anche un WARNING
codice:
Warning: Missing argument 2 for scope_test(), called in [...]
Vorrei far sparire il WARNING mettendo come default a $text_to_concat una variabile globale. È possibile?
Ho già provato diverse soluzioni senza successo. Per esempio
Codice PHP:
<?php
session_start();
$stringa = 'prova';
$GLOBALS['globale'] = 'pippo';
function scope_test ( $text_to_show, $text_to_concat=$GLOBALS['globale'] ) { // line 10
return $text_to_show . ' ' . $text_to_concat;
}
echo scope_test ($stringa); // expected: prova pippo
E il risultato è
codice:
Parse error: syntax error, unexpected T_VARIABLE in [...] on line 10
Insomma, quando si richiama una funzione si può evitare di specificare il secondo argomento avendo come default una superglobale (quindi anche ad esempio $_SESSION, $_COOKIE) ? O non è possibile?
Grazie per l'eventuale risposta.