Considerate il mio esempio:
Effettivamente viene stampato a video "prova pippo", ma (giustamente) viene lanciato anche un WARNINGCodice 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
Vorrei far sparire il WARNING mettendo come default a $text_to_concat una variabile globale. È possibile?codice:Warning: Missing argument 2 for scope_test(), called in [...]
Ho già provato diverse soluzioni senza successo. Per esempio
E il risultato è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
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?codice:Parse error: syntax error, unexpected T_VARIABLE in [...] on line 10
Grazie per l'eventuale risposta.

Rispondi quotando
