Newsgroup: it.comp.www.php
Titolo: Parametro per riferimento opzionale

Ciao a tutti,
sapete come si fa in PhP a fare una funzione con un parametro passato per
riferimento opzionale?
[Descrizione]
   string my_func( [string &par] )
[/descrizione]
Ciao e grazie

 riferimento opzionale?
function my_func($par = 'default') {
        // ...
}
Ricordati del manuale!!!
Byez!
By Design

 Ricordati del manuale!!!
Meglio che non dica niente!!!

 Meglio che non dica niente!!!
C'é anche questo sul manuale, controlla meglio!
Byez!
By Design


Mmmm, mi faresti vedere...
Ah, se sei un newbie? Leggi questo 
http://url.repository.biz/go/3C

 riferimento opzionale?
E' possibile dal PHP 5, credo con la sintassi standard. Sulle versioni
precedenti non è possibile.

 Mmmm, mi faresti vedere...
http://www.php.net/manual/en/functions.arguments.php
"Making arguments be passed by reference" e "Default argument values".
Puoi passare una variabile per riferimento anche dalla funzine chiamante,
utile se la versione PHP che usi non supporta il passaggio a riferimento
con un parametro di default (non ho provato in PHP5 e non sò se è nella
roadmpap del PHP6):
function my_func($par = 'default') {
         // ...
}
$var = 'not so default...';
my_func(&$var);
Un altro piccolo trucco meno pulito del precedente:
function my_func($par = $defaultValue) {
         // ...
}
Byez!
By Design

 chiamante, 
Questo comportamento e' deprecato.
-- 
I am what I am, I do what I can
Do. Or do not. There is not try.

 Questo comportamento e' deprecato.
Ciao,
scusami ma io sto usando php 4.4.0
come mi dovrei comportare?
non ci sto capendo una mazza...
Si puo' o no?
Ho visto che ci sarebbero delle funzioni del core di Php che lo fanno (ora
non so citarne nemmeno una....)
Ciao e grazie 

 Si puo' o no?
In PHP 4 NON PUOI assegnare un valore di default ad un parametro
passato per riferimento.
In PHP 5 PUOI assegnare un valore di default ad un parametro passato
per riferimento.
Se esponi in dettaglio la tua reale necessita' penso si possa trovare
una soluzione efficace anche per PHP 4.


 una soluzione efficace anche per PHP 4.
Intanto grazie,
volendo posso fare anche in altri modi...
pero' mi sarebbe piaciuto fare una funzione che ritornasse TRUE o FALSE in
caso di sucesso o meno e l'eventuale errore fosse messo nell'eventuale
variabile passata per riferimento
Ciao

 variabile passata per riferimento
un possibilità:
restituisci array(false,"messaggio di errore") in caso di errore e 
array(true,"ok") se non c'è errore.
ciao
Alesi_27

 una soluzione efficace anche per PHP 4.
Allora, conformandomi allo "stile php" vorrei fare una funzione che
restituisca un risultato se è andato tutto a dovere oppure false in caso di
errore... in quel caso se fossi interessato a che tipo di errore è occorso
gli passerei una variabile nel parametro.
Mi sembra di aver capito - se volessi mantenere questo "stile" - dovrei
sempre passare la famosa variabile...
esempio scemo:
function myfum( $par1, &$error )
{
	if( $par1 == 1 )
		return 5;
	if( $par1 == 2 )
		$error = 1;
	else
		$error = 2
	return false;
}
<?php
....
if( myfum( 1, $error ) !== false )
	...
else
	//se voglio uso $error...
...
?>
Devo fare diverse funzioni di questo tipo... e mi prenderebbe male scoprire
tardi che avrei potuto fare in un altro modo...
C'è qualche altro modo?
Grazie

 C'è qualche altro modo?
No se vuoi mantenere le compatibilita' con PHP4.
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E


 No se vuoi mantenere le compatibilita' con PHP4.
Ok, ti ringrazio!
Un'altra cosa, puoi non ti rompo più ;-)
Tu in questo ambito che approccio adotti?
Ad esempio una soluzione alternativa potrebbe essere quella che proponeva
alesi_27. Un altro potrebbe essere inventarsi una sorta di GetLastError
(alla Windows) o altro...
Forse la cosa più pulita e anche più semplice è quella dell'argomento per
riferimento...
Cosa suggerisci?