El Llenguatge PHP: notes

Les Pàgines PHP
Les pàgines PHP s'executen en el servidor i el resultat es mostrarà en format HTML. Si observem el codi font de la pàgina en el nostre navegador només veurem codi HTML.
Els programes PHP començen amb l'etiqueta  i acaben amb ?>

Comentaris dins del codi PHP
Cada instrucció PHP finalitza amb punt i coma  ;
Els comentaris del codi PHP segueixen els estils C, C++ i Unix:
// comentari d'una línea
/*.......... */ comentari de diverses líneees
# Comentari estil Shell

Nomenclatura de les variables en PHP
La primera norma i més important és que el primer caràcter ha de ser el signe dòlar ($). N'hi ha d'altres que s'han de tenir presents i que es poden consultar en un manual.
Exemples d'alguns noms de variables vàlids:
$Nom_client
$Direccio_client
$var1
Noms de variable no vàlids
Nom_client ( li manca el símbol $ al principi )
$1Nom_client ( el segon caràcter no pot ser numèric )
$S% ( no s'accepta el signe % )

Tipus de dades de les variables en PHP
En PHP existeixen aquests tipus de dades:
Nombres enters
Poden emmagatzemar nombres enters negatius i positius.
$var = 18;
Nombres de coma flotant
Permeten emmagatzemar nombres amb decimals.
$var = 324.65;
Cadenes de caràcters
Poden emmagatzemar qualsevol tipus de caràcter i la seva longitud no està limitada. Els tipus d'assignacions que podem utilitzar són:
Cadena definida entre cometes dobles ( " )
Cadena definida entre cometes simples ( ' )
Cadena definida per sintaxis de document incrustat ("<<<"), denominada sintaxis heredoc
$var = "cognoms";
$var = 'cognoms';
$var = 'permet tenir cometes " interiors';
Si utilitzem cometes simples es poden incloure cometes dobles dins de la cadena i viceversa. Com a alternativa podem utilitzar la barra invertida per definir un escape.
Els codis d'escape més utilitzats són:
\f Salt de línea
\n Nova línea
\r Retorn de carro
\t Tabulació
\' Cometes simple
\" Cometes doble
\$ Caràctes dòlar
La utilització de cometes dobles (") té una diferència important amb respecte a les cometes simples ('). Quan s'utilitzen cometes dobles PHP evalua la cadena i verifica l'existència de variables en el seu inteiror i reemplaça el nom de la variable pel seu valor vigent.
Exemple:
$var = "Josep";
echo "El meu nom és $var";
 El resultat que produirà en el navegador és:  El meu nom és Josep
Booleans
Poden emmagatzemar True ( 1 ) o False ( 0 )
Matrius
Una matriu és una estructura de dades que ens permet referir-nos a un conjunt de dades utilitzant un únic nom. Les dades emmagatzemades en la matriu s'anomenen elements de la matriu.
$matriu [0] = "Catalunya";
$matriu [1] = "Holanda";
$matriu [2] = "Dinamarca";
PHP ens obliga a que tots els elements de la matriu siguin del mateix tipus. Per tant no és vàlid un 3r element de la matriu amb la dada següent:
$matriu [3] = 150;
L'exemple anterior és una matriu indexada ( l'índex és numèric 0,1,2 ) però també podriem definir la matriu com:
$matriu [] = "Barcelona"; // a la primera assingació li donarà l'índex 0
$matriu [] = "Amsterdam"; // a la segona assingació li donarà l'índex 1
$matriu [] = "Londres"; // a la tercera assingació li donarà l'índex 3

Però també existeix un altre tipus de matriu, les matrius associatives, en les que l'índex enlloc de ser un número és un camp de cadena:
$matiurass ["Catalunya"] = "Barcelona"
$matriuass ["Holanda"] = "Amsterdam"
$matriuass ["Regne Unit"] = "Londres"
Objectes
Els objectes són estructures de dades que contenen propietats i mètodes ( codi que ens permet manipular les propietats de l'objecte ). La sintaxis bàsica per a la definició d'un objecte és la següent:
class objprova {
  function metodeprova ()  {
    echo "l'objecte fa coses";
    }
  }
$var = new objprova;       // així es defineix un objecte de tipus objprova
$var ->metodeprova();    // així es crida a un mètode de l'objecte
El codi dona com a resultat:
l'objecte fa coses

Àmbit de les variables en PHP
L'àmbit de la variable és el context en el que es pot accedir a una variable. En PHP podem tenir variables locals i globals. Quan una variable es defineix dins d'una funció és, de manera predeterminada, una variable local, és a dir, no és accessible desde fora de la funció. Si la variable es defineix fora de la funció llavors el seu àmbit és global i tenim la possibilitat de poder utilitzarla dins de les funcions.
Una funció pot accedir a una variable definida en la part principal del programa. Existeixen diverses maneres de fer-ho:
Definició de global: encara que sembli redundant, PHP ens obliga a definir explícitament dins de la funció a les variables globals per poder utilitzar-les dins de la funció.
Utilització de la matriu $GLOBALS: si volem evitar la definició global podem utilitzar la matriu associativa que conté totes les variables globals. $GLOBALS és un superglobal.
En el següent exemple podem veure 3 funcions, la primera utilitza una variable local, la segona i la tercera utilitzen una funció definida fora de la funció.

function ProvaSenseGlobal() {
    $var++;
    echo "Funcio de prova amb variable local. Valor obtingut de \$var:  ". $var . "
";

    // $var és una variable local
    // per això imprimeix 1 enlloc de 21
}

function ProvaAmbGlobal() {
    global $var;
    $var++;
    echo "Funcio de prova amb variable glogal. Valor obtingut de \$var : ". $var . "
";

    // $var ja no és local
    // per això imprimeix el valor 21
}

function ProvaAmbGlobals() {
    $GLOBALS["var"]++;
    echo "Funcio de prova amb variable global definida a \$GLOBALS. Valor obtingut \$var :". $GLOBALS["var"]. "
";

    // $var ja no és local
    // imprimeix 22
}
$var = 20;
ProvaSenseGlobal();
ProvaAmbGlobal();    
ProvaAmbGlobals();
?>
El resultat que obtenim és:


 Variables estàtiques en PHP
Si volem mantenir el valor de la variable en les successives crides a la funció hem de definir la variable com estàtica (static).
En aquest exemple el valor de la variable no es manté després de la primera crida i per a successives crides.

function ProvaLocal() {
    $var;
    echo "Prova local. \$var :". ++$var    ."
";

}
ProvaLocal(); // ha d'imprimir 1
ProvaLocal(); // ha d'imprimir 1
ProvaLocal(); // ha d'imprimir 1
?>
En aques altre exemple el valor de la variable es manté després de la primera crida i s'incrementa en u en les successives crides.

function ProvaLocal() {
    static $var;
    echo "Prova local. \$var :". ++$var    ."
";

}
ProvaLocal(); // ha d'imprimir 1
ProvaLocal(); // ha d'imprimir 1
ProvaLocal(); // ha d'imprimir 1
?>

Constants en PHP
Una constant és un identificador de dada que no canvia de valor durant tota l'execució del programa. L'intent de canviar de valor provocarà un error.
La funció define ens permet declarar una constant i el seu valor.
Exemple:
define ("pi",3.14156);
Si volem averigura si una constant està definida o no, es pot utilitzar la funció defined:
defined ("pi");

Passi de variables mitjantzant una direcció URL en PHP
Frquentment hem de passar variables d'un pàgina PHP a una altre. un mecanisme pràctic és utilitzar el sufix de la direcció URL de la pàgina que s'està cridant.
http://www.vibantis.com/excel/funcionsexc.php?id=32&key=8
En aquest cas estem passsant a la pàgina funconsexc.php la variable id amb el valor 32 i la variable key amb el valor 8.
El programa rebrà aquestes variables dins de la col·lecció $_REQUEST o $_GET, per exemple:
if ($_GET ['id']==32) . . .

Operadors en PHP
Un operador és la part del codi que indica que es vol fer amb les variables o constants per obtenir un valor. D'acord amb la seva funció es poden classificar en:
  • Aritmètics : per realitzar càlculs matemàtics
  • Assignació : ens permeten assignar un valor a una variable.
  • Comparació : per establir comparacions
  • Execució : per executar codi emmagatzemant
  • Increment/disminució : per incrementar i disminuir valors
  • Cadenes : per combinar cadenes
  • Lògics : per operacions lògiques
  • Bit a bit : per operacions d'activació i desactivació de bits
  • Omissió d'errors : per ometre missatges d'error

Operadors aritmètics en PHP
Són els operadors necessàris per relalitzar càlculs matemàtics
  • Suma (+)
  • Resta (-)
  • Multiplicació (*)
  • Divisió (/)
  • Mòdul: per calcular el restant d'una divisió d'enters (%)

Operadors d'assignació en PHP
Són els operadors que ens permeten assignar un valor a una variable.
  • $a  = $b; Assigna el valor de la variable $b a $a
  • $a += $b; Assigna el valor de la suma de les variables $a i $b a la variable $a. Equival a $a = $a + $b
  • $a -= $b; Assigna el valor de la resta de les variables $a $b a la variable $a. Equival a $a = $a - $b
  • $a *= $b; Assigna el valor de la multiplicació de les variables $a $b a la variable $a. Equival a $a = $a * $b
  • $a /= $b; Assigna el valor de la divisió de les variables $a $b a la variable $a. Equival a $a = $a / $b
  • $a %/ $b; Assigna el valor del mòdul de les variables $a $b a la variable $a. Equival a $a = $a % $b
  • $a .= $b; Assigna el valor de la concatenació de les variables $a $b a la variable $a. Equival a $a = $a . $b

Operadors de comparació en PHP
Són els operadors que utilitzem per realitzar comparacions d'expressions. Els operadors de comparació confronten normalment dues expressions i l'expressió de comparació dona com a resultat verdader o fals. Si suposem una comparació entre $a i $b, els operadors de comparació són els següents:

ExempleNomResultat
$a == $bIgualTRUE si $a és igual a $b después de la manipulación de tipos.
$a === $bIdènticTRUE si $a és igual a $b, y són del mateix tipus.
$a != $bDiferentTRUE si $a no és igual a $b després de la manipulació de tipus.
$a <> $bDiferentTRUE si $a no és igual a $b després de la manipulació de tipus.
$a !== $bNo idènticTRUE si $a no és igual a $b, o si no són del mateix tipus.
$a < $bMenor queTRUE si $a és estrictament menor que $b.
$a > $bMajor queTRUE si $a és estrictament major que $b.
$a <= $bMenor o igual queTRUE si $a és menor o igual que $b.
$a >= $bMajor o igual queTRUE si $a és major o igual que $b.
exp1 ? exp2 : exp3TernariSi exp1 és verdader l'expressió s'avalua com exp2, en cas contrari, com exp3

Exemple sobre la utilització dels operadors de comparació

// operadors de comparació
$var1 = 18;
$var2 = "18 ampolles de cava";

// comparació numèrica
echo "Comparem la variable \$var1 = " . $var1 . " amb la variable \$var2 = " . $var2 ."
";

if ($var1 == $var2) {echo "La variable \$var1 == \$var2 es : verdader
";

}
else {echo "La variable \$var1 == \$var2 es : fals
";

}
if ($var1 === $var2) {echo "La variable \$var1 === \$var2 es : verdader
";

}
else {echo "La variable \$var1 === \$var2 es : fals
";

}
if ($var1 != $var2) {echo "La variable \$var1 != \$var2 es : verdader
";

}
else {echo "La variable \$var1 != \$var2 es : fals
";

}
if ($var1 !== $var2) {echo "La variable \$var1 !== \$var2 es : verdader
";

}
else {echo "La variable \$var1 !== \$var2 es : fals
";

}
if ($var1 >= $var2) {echo "La variable \$var1 >= \$var2 es : verdader
";

}
else {echo "La variable \$var1 >= \$var2 es : fals
";

}
// comparació ternaria
($var1 != $var2) ? ($var1 = "VERITAT" ) : ($var1 = "FALS"); 
echo $var1 ."
";

?>

Operador d'execució
PHP suministra un operador d'execució mitjantçant l'apòstrof invertit (`) . PHP intentarà executar el contingut entre els apòstrofs invertits com si es tractés d'un comando del shell. La sortida només serà retornada, és a dir, no serà simplement volcada com a sortida; pot ser assignada a una variable. La utilització de l'apòstrof invertit és idèntic al de shell_exec().

$var1 = `dir`;
echo "
$var1
";

?>

Operadors d'increment / decrement
PHP poseeix els pràctics operadors d'increment i decrement de variables a l'estil del llenguatge de programació C. Existeixen dos operadors ++ i -- i cadscun d'ells pot actuar abans o després de la operació de devolució de la variable:
Exemple
Nom
Efecte
++$var1
Pre-increment
Incrementa $var1 en u, i després retorna $var1.
$var1++
Post-increment
Retorna $var1, i després incrementa $var1 en u.
--$var1
Pre-decrement
Decrementa $var1 en u, després retorna $var1.
$var1--
Post-decrement
Retorna $var1, després decrementa $var1 en u.


// utilització d'operadors d'increment/decrement
$var1 =1; //valor inicial
echo $var1++ ."
\n"; /*Post-increment: el valor de la variable en memòria

és 1, incrementa en 1, guarda 2 i imprimeix 1*/
echo ++$var1 ."
\n"; /*Pre-increment: el valor de la variable en memòria

és 2, ara el pre-increment incrementa en 1, guarda 3 i imprimeix 3*/
echo --$var1 ."
\n"; /*Pre-decrement: el valor de la variable en memòria

és 3, ara el pre-decrement decrementa en 1, guarda 2 i imprimeix 2*/
echo $var1-- ."
\n"; /*Post-decrement: el valor de la variable en memòria és 2,

ara el post-decrement decrementa en 1, guarda 1 i imprimeix 2*/
?>

Operadors de cadenes ( Strings )
Existeixen dos operadors per a dades de cadenes (strings).

Comentaris

Entrades populars