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 ?>
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
/*.......... */ comentari de diverses líneees
# Comentari estil Shell
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
$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 % )
$1Nom_client ( el segon caràcter no pot ser numèric )
$S% ( no s'accepta el signe % )
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
Cadena definida entre cometes simples ( ' )
Cadena definida per sintaxis de document incrustat ("<<<"), denominada sintaxis heredoc
$var = "cognoms";
$var = 'cognoms';
$var = 'permet tenir cometes " interiors';
$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
\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";
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";
$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
$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"
$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
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
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
?>
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");
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:
Són els operadors necessàris per relalitzar càlculs matemàtics
Són els operadors que ens permeten assignar un valor a una variable.
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:
Exemple | Nom | Resultat |
---|---|---|
$a == $b | Igual | TRUE si $a és igual a $b después de la manipulación de tipos. |
$a === $b | Idèntic | TRUE si $a és igual a $b, y són del mateix tipus. |
$a != $b | Diferent | TRUE si $a no és igual a $b després de la manipulació de tipus. |
$a <> $b | Diferent | TRUE si $a no és igual a $b després de la manipulació de tipus. |
$a !== $b | No idèntic | TRUE si $a no és igual a $b, o si no són del mateix tipus. |
$a < $b | Menor que | TRUE si $a és estrictament menor que $b. |
$a > $b | Major que | TRUE si $a és estrictament major que $b. |
$a <= $b | Menor o igual que | TRUE si $a és menor o igual que $b. |
$a >= $b | Major o igual que | TRUE si $a és major o igual que $b. |
exp1 ? exp2 : exp3 | Ternari | Si 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 ."
";
?>
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";
?>
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
Publica un comentari a l'entrada