Stefan Ghinea.it | English versionEnglish version | e-mail

  • Cerca nel sito
   myway con Google:
   
   Web Ghinea.it
   
  • Socialnetwork
Web Agency Prato:
Creazione Siti, Indicizzazione, Ottimizzazione
 
  facebook  twitter  youtube 
 
  • ContattamiSkype
Web Agency Prato:
richiesta informazioni
 
My status
Contattami

Lezioni PHP: Funzioni in PHP II

L’utilizzo di funzioni è fortemente consigliato ogni qual volta si debba ripetere più volte una stesse serie di istruzioni, eventualmente su variabili diverse. Le ragioni sono sicuramente una migliore leggibilità del codice, una maggiore facilità nella manutenzione e una compattezza del codice.

In PHP la dichiarazione di una funzione è del tipo
function miafunzione(arg1, arg2, arg3=default3, …)
{
… codice …
}
Obbligatorie le parentesi graffe per la delimitazione del blocco di istruzioni che verrà eseguito all’invocazione della nostra funzioni. Si noti come ai parametri (opzionali) non sia necessario associare un tipo ma sia possibile invece indicare un valore di default nel caso non venga specificato il valore del parametro nell’invocazione. I parametri possono essere di ogni tipo, compresi quindi array e oggetti. All’interno di una funzione riveste particolare importanza l’utilizzo del costrutto return ESPR dove ESPR può essere un espressione o una semplice variabile. L’istruzione (opzionale) di return permette di ritornare uno e un solo valore al chiamante, ovviamente quando si necessiti di avere come output della funzione diversi valori è possibile ritornare una variabile di tipo array che sarà poi gestita come tale dal chiamante, vediamo un esempio:
function miafunzione($a, $b)
{
$a = $a*10;
$b = $b*100;
return array($a,$b);
}

list($newa, $newb) = miafunzione(2,3);

Il passaggio dei parametri alla funzione può avvenire per valore (questo è il default), cioè la funzione crea internamente una copia della variabile passata e questa può essere modificata senza nessuna ripercussione sulla variabile originale, oppure per riferimento, tramite l’indicazione del simbolo & prima della variabile: in questo caso la funzione può modificare la variabile originale.
Questo codice può chiarire il concetto:

function quadrato($a)
{
$a *= $a;
}
$b = 2;

quadrato($b);
print ‘valore: $b=’. $b .”
\n”;

quadrato(&$b);
print ‘riferimento: $b=’. $b;

Al contrario di altri linguaggi, in PHP non si può utilizzare le variabili globali per gestire in modo implicito le chiamate per riferimento, questo perchè in PHP le variabili globali non sono visibili all’interno delle funzioni a meno che siano indicate esplicitamente come tali all’interno della funzione tramite il costrutto global.

All’interno di funzioni è inoltre possibile dichiare delle variabili come static aventi cioè valenza (scope) locale alla funzione ma durata (lifetime) globale, questo ci permette di mantenere i valori della variabile in dichiarazioni successive alla funzione senza però esporla alla possbilitò di modifica inavvertita da altre componenti del nostro programma, cosa che sarebbe invece possibile se la avessi dichiarata come globale, di seguito un esempio classico per illustrare il concetto di variabile statica;

function allunga()
{
static $a=’a';
return $a.=’a';
}
$a = “b”;
print allunga().”\n
“;
print allunga().”\n
“;
print allunga().”\n
“;
print $a;

   19/08/2010 09:19:39 am
  • No Related Post
1 Comment »

Un commento a “Lezioni PHP: Funzioni in PHP II”

  1. [...] Lezioni AJAX: Introduzione ad AJAX [...]

    Lascia un commento

Spam protection by WP Captcha-Free

  • I bannerGhinea.it
minibanner1
minibanner2
minibanner3
minibanner4
  • Sidebar
  • Categories:
  • Abbiamo lanciato a gennaio 2012 un nuovo sito WordPress: tmptecnorestauri.it
    Abbiamo lanciato alla fine di novembre 2011 un nuovo sito WordPress: infortunisticabologna.net
    Un sito amatoriale: www.sorrisodiluna.too.it
    Giochi online: www.mostfun.com
    Sempre classico: www.gianlucabianchi.it
    I siti web della settimana
    WordPress inarrestabile
    La PEC… vola
    Google nemico della memoria?
    Anonymous: nemici pubblici numero uno







    Stefan Ghinea - Consulenze informatiche e soluzioni software
    Via Marchini, 26 - 59100 Prato (PO) - Tel.: 340 2123560; Fax: 0574 027820  E-mail Home page
    © 2010 by GhineaWebSolutions.it