Sintaxis

Categories:

En esta entrada vamos a revisar algunos conceptos de programación junto con su sintaxis. En otras entradas vamos a utilizar estos conceptos cuando conectemos PHP con MySQL.

Nota:
Después de algunos bloques de código se van a mostrar otros bloques en los cuales se muestra el resultado arrojado por el código PHP. Ej.


Resultado después de analizar el código de PHP.

Comentarios
Los comentarios son líneas de texto que no van ser analizadas por PHP.
A diferencia de los comentarios en HTML, los comentarios en PHP no van a ser mostrados en el documento final.

<?php

// Comentario de una línea

/*              
  Comentario que puede
  ocupar más de una línea.
*/

?>

Nota
Las sentencias – líneas de código – en PHP terminan con punto y coma – ; -, con excepción de las líneas donde se inicia o se termina un bloque de código – donde haya llaves { } -.

Constantes
Las constantes son contenedores que se utilizan para guardar un valor durante la ejecución de un script.
El valor almacenado en una constante NO CAMBIA durante la ejecución del script.
Para definir una constante se utilizar define, el nombre de la constante – en mayúsculas – y el valor que se le quiere asignar.

define('APP_NAME', 'Nombre de mi aplicación');

// Una vez definido el valor de la constante se utiliza sin comillas. 

echo APP_NAME;
 Nombre de mi aplicación

¿Para qué utilizar constantes?
Para almacenar un valor que vamos a utilizar en muchos lugares de una aplicación web.
En caso de que ese valor cambie se sustituye el valor en un lugar del código.

Variables
Las variables son contenedores que se utilizan para guardar un valor durante la ejecución de un script.
Ese valor puede cambiar durante la ejecución del script.
En PHP las variables utilizan el signo de dólar – $ – seguido de caracteres alfanuméricos.

<?php
$variable = 'valor';
$otra_variable = 5;
?>

Nota:
PHP hace distinción entre mayúsculas y minúsculas.

<?php
$curso = 'PHP MySQL';
echo $curso;
?>	

<?php
// La variable $Curso no está definida. 
echo $Curso; 

// Las variables definidas en un bloque de php se pueden utilizar en otros bloques dentro del mismo
// documento. 
echo $curso;
?>

 PHP MySQL

( ! ) Notice: Undefined variable: Curso in archivo.php on line ###

Call Stack
#	Time	Memory	Function	Location
1	0.0019	256520	{main}(  )	.../archivo.php:0

PHP MySQL

El valor ‘archivo.php’ se refiere añ nombre del archivo que utilice la variable sin definir y los ### se refiere a la línea en la cual está la variable sin definir.

Algunas recomendaciones para nombrar variables.

  1. Letras de la a-z sin acentos, ñ, o cualquier otro carácter.
  2. Números (no se pueden utilizar como primer carácter).
  3. Nombrar la variable lo más cercano al valor que van a contener.
    Hay algunas excepciones – por ejemplo utilizar i,j como contador en los ciclos – .
<?php
/*
snake_case: unir varias palabras con un guión bajo entre ellas.
*/

$nombre_completo;
$una_variable_con_un_nombre_largo;

/*
camelCase: las palabras estan juntas pero, para señalar donde comienza la siguiente palabra, 
se utiliza una letra mayúscula.
*/

$nombreCompleto;
$unaVariableConUnNombreLargo;
?>

Números
PHP permite el uso de números – enteros / decimales – de manera indistinta.
Los números se pueden usar directamente o asignarse a una variable.

<?php
echo 1;
echo "<br>";
echo  5.5; 
echo "<br>";
$numero = 1;
echo "<br>";
echo $numero;
echo "<br>";
$numero = 5.5;
echo $numero;
?>

1
5.5

1
5.5

Letras
PHP también permite el uso de cadenas de texto, utilizando comillas – “” – o apóstrofes – ‘ -.
Nota:
En PHP si hay diferencia entre el uso de comillas y apóstrofes.

<?php

// Al momento de asignar texto, no importa si el texto se encuentra entre comillas o apóstrofes.
$curso = "PHP MySQL";
$dia = 'miércoles';

echo $curso; 
echo "\n";
echo $dia;
echo "\n";
/* 

Al momento de visualizar el contenido de una variable SI afecta. 

Cuando se utilizan comillas - comillas dobles -, se muestra el contenido de la variable,
y se interpretan las secuencias de escape - http://php.net/manual/es/regexp.reference.escape.php - .

Cuando se utilizan apóstrofes - comillas sencillas - la variable se muestra como texto, es decir, 
se visualiza el nombre de la variable pero no el contenido. Las secuencias de escape se visualizan como texto. 

*/
	
echo "$curso"; 
echo "\n";
echo '$curso'; 
echo "\n";
echo "$dia"; 
echo "\n";
echo '$dia'; 
echo "\n";

?>

PHP MySQL
miércoles
PHP MySQL
$curso
miércoles
$dia

Operadores aritméticos / Contatenación
Con los tipos de datos anteriores – números y letras – PHP permite realizar operaciones.

<?php             

$valor_1 = 5;
$valor_2 = 10;

$suma = $valor_1 + $valor_2;
$resta = $valor_1 - $valor_2;
$multiplicacion = $valor_1 * $valor_2;
$division = $valor_1 / $valor_2;
 
echo $suma;
echo "\n";
echo $resta;
echo "\n";
echo $multiplicacion;
echo "\n";
echo $division;
echo "\n";

/* 
En PHP se pueden unir distintas cadenas de texto para formar una sola cadena,  a esto se le llama concatenar.
Para concatenar se utiliza un punto entre las cadenas de texto (o variables que contienen texto) para unir.  
Cuando un número (o variable que contiene un número) se encuentra dentro de los valores a concatenar, también se concatena como si fuera texto.
*/

echo '¡Hola' . ' ' . 'Mundo!'; 

$hola = "Hola";
$mundo = "Mundo";

echo $hola . ' ' . $mundo . "\n"; 

echo $hola . ' ' . 10 . ' ' . $mundo . "\n"; 

$diez = 10;

echo $hola . ' ' . $diez . ' ' . $mundo . "\n"; 

// Abreviaciones

$x = 0;

$x++;

echo "El valor de x es: ". $x . "\n";

// Es lo mismo que $x = $x + 1

$x--;

// Es lo mismo que $x = $x - 1

echo "El valor de x es: ". $x . "\n";

?>

15
-5
50
0.5
¡Hola Mundo!
Hola Mundo
Hola 10 Mundo
Hola 10 Mundo
El valor de x es: 1
El valor de x es: 0

Operadores de comparación / Valores de verdad
Al igual que en otros lenguajes de programación en PHP se permiten comparar valores. Del resultado de esta comparación se va a obtener un valor de verdad que indica si la comparación realizada es verdadera o falsa.

Operador Descripción Ejemplo
> Es verdadero cuando el primer valor es mayor al segundo $a > $b
>= Es verdadero cuando el primer valor es mayor o igual al segundo $a >= $b
< Es verdadero cuando el primer valor es menor que el segundo $a < $b
<= Es verdadero cuando el primer valor es menor o igual que el segundo $a <= $b
== Es verdadero cuando el primer valor es igual al segundo $a == $b
<> o != Es verdadero cuando el primer valor es diferente al segundo $a != $b
=== Es verdadero cuando el primer valor es idéntico al segundo $a == $b
!== Es verdadero cuando el primer valor no es idéntico al segundo $a != $b

Ramificaciones
Estructuras de control que permiten la ejecución de código con base en el valor de verdad de expresiones.

<?php
$a = 1;
$b = 2;

// Si se cumple la condición entre paréntesis
// Se analiza(n) la(s) línea(s) entre llaves

if ($a < $b) {
  echo "Se cumplió la condición 1\n";
} 

// Si se cumple la condición entre paréntesis
// Se analiza(n) la(s) línea(s) entre llaves
// Si no se cumple la condición se analiza(n) la(s) línea(s) entre llaves después de else

if ($a > $b) {
  echo "Se cumplió la condición 2 \n";
} else {
  echo "No se cumplió la condición 2 \n";
}  

// Si se cumple alguna condición que se encuentra entre paréntesis
// Se analiza(n) la(s) línea(s) entre llaves que corresponden a la condición (if, else if)
// Si no se cumple la condición se analiza(n) la(s) línea(s) entre llaves después de else


if ($a == $b) {
  echo "Se cumplió la condición 3 \n";
} else if ($a > $b) {
  echo "Se cumplió la condición 4 \n";
}  else {
  echo "No se cumplieron ni la condición 3 ni la condición 4 \n";
}
?>

Se cumplió la condición 1 
No se cumplió la condición 2 
No se cumplieron ni la condición 3 ni la condición 4 

Arreglos
Los arreglos son variables que tienen la capacidad de almacenar más de un valor en un momento determinado.
En PHP existen dos tipos de arreglo indizado (indexado) o asociativo.
El arreglo indizado (indexado), almacena los valores utilizando una posición (índice).
El índice comienza en el elemento 0.
El arreglo asociativo permite asociar el valor que va a ser almacenado a una (palabra) clave.

<?php
/*
Arreglo indizado o indexado. 
Para obtener un valor del arreglo se nombra la variable 
y entre corchetes la posición que ocupa el valor que se quiere obtener.
*/

$numeros = array(1,2,3,4,5);				
echo $numeros[0] . "\n";

	
/*
Arreglo asociativo. 
En este tipo de arreglos se utiliza una clave para asociar el valor que va a ser almacenado.
Para obtener un valor del arreglo se nombra la variable y entre corchetes la clave que asocia
el valor que se quiere obtener.	
*/

$semana = array('L' => 'Lunes', 'M' => 'Martes', 'X' => 'Miércoles', 'J' => 'Jueves', 'V' => 'Viernes', 'S' => 'Sábado', 'D' => 'Domingo');
echo $semana['X'] . "\n";

?>

1
Miércoles

Ciclos
Los ciclos son instrucciones que ejecutan bloques de código de manera repetitiva.

<?php  
/*
El ciclo for recibe 3 valores (que van separados por ;)
1. El valor de inicio
2. La condición que se debe de cumplir para que el ciclo se vuelva a repetir.
3. Incremento en el valor

*/
for ($i=0; $i <= 10; $i++) { 
  echo $i . " "; 
} 

echo "\n";

$semana = array("lunes", "martes", "miércoles", "jueves", "viernes", "sábado", "domingo");

for ($i=0; $i < count($semana); $i++ ) { 	
  echo $semana[$i] . " "; 
}

echo "\n";

// Para los arreglos asociativos podemos utilizar foreach - para cada elemento.

$semana = array('L' => 'Lunes', 'M' => 'Martes', 'X' => 'Miércoles', 'J' => 'Jueves', 'V' => 'Viernes', 'S' => 'Sábado', 'D' => 'Domingo');

/*
Para cada elemento del arreglo semana, queremos tratar la clave como día y el valor como nombre.
*/
  
foreach ($semana as $dia => $nombre) { 
  echo $dia . " -> " . $nombre . "\n";
}

/*
A diferencia del ciclo for, el ciclo while, ejecuta el bloque de código (que se encuentra entre llaves)
mientras que la condición sea verdadera.  
Si no hay una manera de hacer cumplir la condición en un ciclo while, este se repite indefinidamente.
*/

$i = 0;
while ($i < 10) { 
 echo $i . " "; 
 $i++;
}

echo "\n";

?>

0 1 2 3 4 5 6 7 8 9 10 
lunes martes miércoles jueves viernes sábado domingo 
L -> Lunes
M -> Martes
X -> Miércoles
J -> Jueves
V -> Viernes
S -> Sábado
D -> Domingo
0 1 2 3 4 5 6 7 8 9 

Aunque fue mucho contenido – comentarios, constantes, variables números / letras, operadores aritméticos / concatenación, operadores de comparación / valores de verdad, ramificaciones, ciclos – para una sola entrada preferí hacerlo así – incluso sin profundizar en algunos temas – para enfocarnos más al uso de PHP con MySQL para aplicaciones – en lugar de conocer PHP más a fondo -.

En el transcurso de las siguientes entradas es probable que se utilicen algunas variaciones o que se vayan llenando vacíos – tanto conceptuales como ejemplos – de los conceptos y el código empiece a tener un poco más de sentido.