dubbi riguardo le funzioni e alcuni suoi parametri

Ciao, non riesco a capire la logica di una funzione.

es:

function capitalize( $str )
      {
         $str = strtolower($str);
         $str{0} = strtoupper($str{0});
         echo $str;
      }
   capitalize("hEllO WoRld");

2 domande:

perché la funzione capitalize ha al suo interno una variabile? (che se non sbaglio qui si chiama metodo). Perché non funziona lo stesso senza? Non dico praticamente alla funzione di eseguire il codice che gli passo tra graffe?  ???

perché devo dare alla variabile $str il parametro del primo carattere sia nella variabile stessa che nella funzione strtoupper? Non posso dichiarare la variabile normalmente e poi dirgli di applicare la funzione strtoupper al primo carattere della variabile?

inoltre ho dei dubbi sulla differenza tra parametri e argomenti. Leggendo un libro c'è un pò di confusione. Ciò che è tra parentesi tonde quando la dichiaro è parametro o argomento? e ciò che c'è tra tonde quando la richiamo?

spero di essere riuscito a spiegarmi. Grazie

inviato 6 anni fa
gabar-el
X 0 X

Hai parecchia confusione in testa mi sembra.

La funzione che proponi vuoi rendere tutta una stringa che gli si passa in caratteri minuscoli e mettere in carattere maiuscolo il primo carattere della stringa.

Per far questo si possono anche usare altri sistemi, ma non ci importa.

Una funzione è un pezzo di codice che può essere richiamato più volte all'interno di un applicativo. E' un pezzo di codice "a se stante" (non è proprio vero), intendo dire che le variabili all'interno della funzione sono create all'interno di questa funzione e distrutte nel momento in cui la funzione termina la sua vita (a grandi line ok?).

Per rispondere alle tue domande:

1) non mi sembra corretto chiamarlo metodo, è una variabile. Questa variabile gli serve per immagazzinare un input (in questo caso la stringa) e poter procedere poi all'esecuzione del codice che produrrà un output (è l'echo).

2) non può funzionare senza, da dove prende la stringa da modificare?

L'unico modo per funzionare senza è quello di definire una variabile globale all'interno di un applicativo, questa variabile può essere vista dalle funzioni che altrimenti non le vedrebbero (sono codice "a se stanti").

In poche parole la chiamata di capitalize fa assumere a $str il valore che gli passi tra le doppie virgolette (potevi usare anche una variabile purchè sia stringa), la funzione poi lavora su questa stringa.

Sono stato chiaro?

risposto 6 anni fa
Mario Santagiuliana
X 0 X

Chiaro, questo l'ho capito molto bene ora.  O0

Grazie tante   :)

risposto 6 anni fa
gabar-el
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda