View on GitHub

apunts

Apunts DWES

Introducció al llenguatge PHP.

El llenguatge PHP és flexible i permiteix programar xicotets scripts rapidament. La sintaxi és semblant a JAVA i C, encara que requereix meyns codi.

Taula de continguts

PHP i HTML

Codi incrustat

El documents que contenen codi php s’han d’anomenar amb l’extensió .php

El nostre primer codi PHP

Video

<html>
<head></head>
<body>
	<h1><?php echo 'Hola món' ?></h1>
<body>
<html>
<head></head>
<body>
	<h1><?= Hola món ?></h1>
<body>

Comentaris

Variables

Una de les característiques de php és que és un llenguatge no fortament tipat. De fet no cal declarar la variable ni indicar el tipus de dades si la declare. Encara que si volem codi de qualitat ho hauriem de fer.

Declaració

Per crear una variable que continga el text a generar i mostrar-la:

<html>
<head></head>
<body>
	<h1>
	<?php 
		$salutacio = 'Hola món';
		echo $salutacio; 
	?>
	</h1>
<body>

Tipus de les variables

$la_meua_variable = 7;  // ara és un número
$la_meua_variable = "set"; // ara és cadena

Si li canviem el contingut passa a ser de tipus “cadena”

Variable no inicialitzades

Si s’intenta utilitzar una variable abans d’assignar-li un valor, es genera un error de tipus E_NOTICE però no s’interromp l’execusió de l’script. L’eixida mostrarà un avís cada volta que s’intente.

Constants

Per a definir variables utilitze define(), que reb el nom de la constant i el valor que li volem donar

define("LIMITE",1000);

És habitual i una bona pràctica, utilitzar identificadors en majuscules per a les constants.

Tipus de dades en PHP

Àmbit de les variables

L’àmbit d’una variable és la part del codi en que és visible. Una variable declarada en un fitxer de PHP està disponible en eixe fitxer i en els que l’incloguen. Les funcions definixen un àmbit local, separat de la resta del codi. Es poden definir variables globlals amb la paraula reservada global, encara que no són aconsellables.

Variables predefinides

Són variables internes i globals predefinides de PHP que poden usar-se des de qualsevol àmbit. Tomem forma d’arrays associatius que contenen un conjunt de valors.

http://es.php.net/manual/es/language.variables.superglobals.php

Expansió de variables

echo "<p>Mòdul: $module</p>"
echo "<p>Mòdul: {$module}DAW</p>"

Separar la lògica de la presentació

Video

Quan estem programant, sempre hem de fer que cada fitxer, classe, funció … s’encarregue d’una sola cosa. La més clara és separem la lògica del programa (en el nostre cas en php) de la presentació a l’usuari (majoritariament amb codi html). Per a poder separar estes dos funcions en calen sentències per incloure fixers.

Sentències per a incloure Fitxers

Les sentències include() i include_once() i require() i require_once() inclouen i avaluen l’artxiu especificat. include_once() i require_once() verifica que l’arxiu no haja sigut inclòs abans i és preferible a include. Cal ser curòs amb el path de l’arxiu a incloure. La diferència entre require i include és el tractament de l’error quan el fitxer no existeix.

fruites.php
<?php

$color = 'verde';
$fruta = 'manzana';
include('fruite.view.php')

?>
fruites.view.php

<html>
<head>
<title>Fruites</title>
</head>
<body>
	<h3>
 		<?= "Una $fruta $color" ?> 
 	</h3>		
</body>
</html>

Arrays

Video

Un array és un tipus de dades que ens permet emmagatzemar diversos valors.Per tal d’accedir a un valor utilitzarem una clau. Les claus poden ser nombres o textos (arrays associatius).Si no indiquem cap clau, a cada element se li associarà una clau numèrica correlativa.

Crear array

$noms = array();
$noms = [];
$noms = array('Sandra', 'Pedro', 'Andrea'); 
$noms = ['Sandra', 'Pedro', 'Andrea'];

Mostrar el contingut d’un array

Si intentem mostrar el contingut d’un array amb echo no obtindrem les dades que hi ha dins del array. En lloc d’açò podem utilitzar la funció print_r:

print_r($noms);

Però si necessitem donar-li format als continguts del array, haurem de recórrer-ho amb un bucle i anar mostrant element a element.

Afegint elements al array

Podem afegir elements al array utilitzant claudàtors buits. La clau d’aquests elements serà el següent índex numèric disponible.

$noms[] = 'Raul'; $noms[] = 'Marta';

Accedir als elements del array

Accedirem als elements del array indicant la clau de l’element entre claudàtors:

echo $noms[2];

També podem modificar el seu valor:

$noms[0] = 'Sara';

Recórrer arrays

Arrays associatius

Video

Si el array conté dades diverses i/o ens interessa accedir a ells amb claus més específiques que un simple índex numèric podem utilitzar arrays associatius:

$alumne  = array('nom' => 'Sara', 'cognom' => 'García', 'edat' => 22 );
$alumne = ['nom' => 'Sara', 'cognom' => 'García', 'edat' => 22 ];
$alumne['nom'] = 'Verónica';
echo $alumne['nom'];

Recórrer arrays associatius

Recórrer claus i valors

Arrays multidimensionals

Imagina que volem tenir un array els elements del qual són noms d’esports. Volem dividir-los en esports d’hivern i esports d’estiu. Podem crear un array esports que continga dos elements que al seu torn també seran arrays.

$esports = ['hivern' => ['esquí de fons', 'hoquei sobre gel'], 'estiu' => [ 'natació', 'voley platja'] ];

Per a accedir al primer esport d’hivern:

echo $esports['hivern'][0];

Funcions d’arrays

Cadenes de text

Video

 $fullName = $name.' '.$surnames;

Funcions de cadenes

Pots consultar-les en http://es.php.net/manual/es/ref.strings.php (no té sentit enumerar-les una a una)

Operadors

Operadors Aritmètics

Operadors de Cadena

El . concatena dos cadenes

Operadors d’asignació

El = s’utilitza per asignar un valor a una variable. També es poden combinar amb els operadors aritmètics com l’exemple

$a += $b equival a $a = $a + $b

$a -= $b equival a $a = $a - $b

Operadors de comparació

Operadors lògics

Operador ternari

Funciona com un condicional condició ? valor si true : valor si false i que es pot simplificar ** condició

https://www.php.net/manual/es/language.operators.php

Estructures de control de flux

seguint les estructures:

if (condició) {
	// instruccions
}
else {
	// instruccions
}
switch ($variable) {
	case valor:
		//instruccio1
		break;
	case valor:
		//instruccio1
		break;
	default:
		//instruccio1
}			
while (condició) {
	//instruccions
}
do {
	//instruccions
} while (condició);
for ($i=1;$i<10;$i++){
	//instruccions
}

http://php.net/manual/es/language.control-structures.php

Funcions i llibreries

Funcions predefinides

Funcions definides per l’usuari

Video

Per a crear les teues pròpies funcions, hauràs d’usar la paraula function:

function suma($a, $b){ return $a + $b; }

Per tal d’invocar la funció:

$resultat = suma(5, 7);

Si una funció no té una sentència return, retorna null en finalitzar.

Valors per defecte en els paràmetres

function preuAmbIva($preu, $iva=0.21){
	return $preu * (1 + $iva);
}
$preu = 10;
$pIva = preuAmbIva($preu);

Pas de paràmetres per referència

Per defecte els paràmetres es passen per valor. Per a passar un paràmetre per referència afegirem el símbol & davant del seu nom.

function preuAmbIva(&$preu, $iva=0.18){
	$preu *= (1 + $iva);
}

Declaracions de tipus (Type Hinting)

Les funcions obliguen al fet que els paràmetres siguen de cert tipus. Si el valor donat és d’un tipus incorrecte, es generarà un error. Per això s’ha d’anteposar-se el nom del tipus al nom del paràmetre. Es pot fer que una declaració accepte valors NULL si el valor predeterminat del paràmetre s’estableix a NULL.

Tipus vàlids

Exemple

function suma(int a, int b):int
{
	return $a + $b;
}
$resultado = suma(3,5);

Funcions com a paràmetres

En PHP és possible passar funcions com a paràmetres a altres funcions. Només cal passar el nom de la funció entre cometes. Exemple:

 function calculator($operation,$numA,$numB){
	return $operation($numA,$numB); }
function sumar($a,$b) { return $a+$b; }
function restar($a,$b) {return $a-$b; }

$a=4;$b=6;
echo calculator('sumar',$a,$b);
echo calculator('restar',$a,$b);

Funcions anònimes (closures)

Sense paràmetres:

$anonima = function () {
echo "Hola"; 
}; 
$anonima();

Amb paràmetres:

$anonima = function ($nom) {
echo "Hola {$nom}"; 
}; 
$anonima('Álex');

Llibreries

Podem fer llibreries de funcions guardant-les en un fitxer que desprès importem des d’on les utilitzem. Ho podem fer amb include, o utilitzant composer per a fer-ho.

##Formularis