PHP básico

De Wiki Proyectos Beta
Ir a la navegación Ir a la búsqueda

Sintaxis básica

Documentacion oficial de la sintaxis de PHP: ES

El script PHP se ejecuta en el servidor y el resultado HTML se envía al navegador. Normalmente puede tener etiquetas HTML y PHP, pero no se recomienda. Era una práctica que se hacia hace mucho tiempo y le dio una mala fama a PHP. La recomendación es tener SOLO código PHP. Los archivos PHP se guardan con la extensión ".php".

PHP o preprocesador de hipertexto es un lenguaje de scripting de uso general de código abierto.

Etiquetas PHP

Cuando PHP analiza un fichero, busca las etiquetas de apertura y cierre, que son <?php y ?>, y que indican a PHP dónde empezar y finalizar la interpretación del código. Este mecanismo permite embeber a PHP en todo tipo de documentos, ya que todo lo que esté fuera de las etiquetas de apertura y cierre de PHP será ignorado por el analizador.

PHP también permite la etiqueta de apertura abreviada <? (la cual está desaconsejada debido a que sólo está disponible si se habilita con la directiva short_open_tag del fichero de configuración php.ini, o si PHP se configuró con la opción --enable-short-tags).

Si un fichero contiene solamente código de PHP, es preferible omitir la etiqueta de cierre de PHP al final del mismo. Así se previene la adición de espacios en blanco o nuevas líneas accidentales después de la etiqueta de cierre, lo cual causaría efectos no deseados.

Comentarios

Documentación oficial de comentarios de PHP: ES

El estilo de comentarios en PHP es como el de C, C++ o Perl:

Una sola línea

<?php echo 'Hola Proyectos Beta' ; // Esto es un comentario de una línea 
?>

Múltiples líneas

Los comentarios de varias líneas finalizan con el primer */:

<?php
  /*
    echo 'Esto es un comentario'; /* Más comentario */
  */
?>

Variables y constantes

Variables

Documentación oficial de variables en PHP ES

Una variable es un espacio de memoria reservado para almacenar un valor, con el objeto de poder visualizarlo, modificarlo u operar con él cuando se lo necesite durante la ejecución de un programa.

Esto significa que en cualquier momento, una variable puede cambiar de valor (de ahí su nombre).

En PHP, las variables son declaradas anteponiendo el símbolo del dólar ($) al nombre de esta. Los nombres de las variables deberán comenzar por una letra o por un guion bajo (_). No podrán comenzar por un número o un carácter especial.

Ejemplos

<?php
  $nombre = "Proyectos Beta";
?>

Los nombres de variable en PHP son sensibles a mayúsculas y minúsculas, por lo que:

$nombre, no es igual que $Nombre. Ambas son consideradas variables distintas.

Todos los valores que sean cadenas de caracteres, deben especificarse entre comillas (" ").

Constantes

Documentación oficial de constantes en PHP: ES

Existen casos en los que necesitamos almacenar un valor en concreto, pero sabemos que ese valor no se va a modificar en ningún momento de la ejecución del programa. Para ello usamos una constante.

Ejemplos

Constantes correctas

<?php
     // Nombres de constantes correctas.
     define ("PI", "3,14159265358979323846");
     define("FOO", "something");
     define("FOO2", "something else");
     define("FOO_BAR", "something more");
     echo (PI);
     echo (FOO);
     echo (FOO2);
     echo (FOO_BAR);
?>

Constantes incorrectas

<?php
     // Nombres de constantes incorrectas.
     define("2FOO", "something");
?>

Tipo de datos

Documentación oficial de tipo de datos PHP: ES

Documentación oficial de tipo de datos PHP: EN

Cuatro tipos escalares:

  • boolean
  • integer
  • float (número de punto flotante, también conocido como double)
  • string (cadenas de caracteres)

Cuatro tipos compuestos:

  • array
  • object
  • callable
  • iterable

Dos tipos especiales:

  • resource
  • NULL

Tipo escalares

Booleanos

El tipo de dato boolean contiene un valor lógico que solo admite true o false (verdadero o falso).

En PHP existe una función que comprueba si una variable es de tipo boolean.

La funcion se llama is_bool y devuelve si la variable es un booleano o no.

Documentación oficial: ES

Ejemplos

Ejemplo 1
$flag = true;
Ejemplo 2
$flag = true;

if(is_bool($flag)){
  echo "Es boolean.";
}else{
  echo "No es boolean.";
}

Números enteros (integers)

El tipo de dato integer (entero) contiene valores de números enteros (1, 2, 3, 4, 5, 6, 7, 8, 9...).

En PHP existe una función que comprueba si una variable es de tipo integer.

La funcion se llama is_int y devuelve si la variable es un integer o no. Existen otras funciones llamadas is_integer y is_long, pero son el alias de is_int().

Documentación oficial: ES

Ejemplos

Ejemplo 1
$numero_entero = 6;
Ejemplo 2
$numero_entero = 6;

if(is_int($numero_entero)){
  echo "Es integer.";
}else{
  echo "No es integer.";
}
Ejemplo 3
if(is_integer($numero_entero)){
  echo "Es integer.";
}else{
  echo "No es integer.";
}
Ejemplo 4
if(is_long($numero_entero)){
  echo "Es integer.";
}else{
  echo "No es integer.";
}

Números de punto flotante (double)

El tipo de dato double (reales) contiene valores de números en coma flotante (con decimales) (1,45 3,89875 8,7724 3,14 etc).

En PHP existe una función que comprueba si una variable es de tipo float.

La funcion se llama is_float y devuelve si la variable es un float o no. Existe otra función llamada is_double, pero es el alias de is_float().

Documentación oficial: ES

Ejemplos

Ejemplo 1
$precio = 3.99;
$monto = 12.0;
Ejemplo 2
$precio = 3.99;

if(is_float($precio )){
  echo "Es float.";
}else{
  echo "No es float.";
}
Ejemplo 3
if(is_double($precio)){
  echo "Es float.";
}else{
  echo "No es float.";
}

Cadenas de caracteres (strings)

El tipo de datos string contiene cadenas de caracteres.

En PHP existe una función que comprueba si una variable es de tipo string.

La funcion se llama is_string y devuelve si la variable es un string o no.

Documentación oficial: ES

Ejemplos

Ejemplo 1

$nombre = "Proyectos Beta";

Ejemplo 2

$nombre = "Proyectos Beta";

if(is_string($nombre )){
  echo "Es string.";
}else{
  echo "No es string.";
}

Tipo compuestos

arrays (matriz)

Tipo de dato array que contiene conjunto de valores.

Los arrays o matrices en PHP pueden almacenar varios valores en una variable, como un mapa ordenado, en el cual los valores están asociados con claves y direcciones.

En PHP existe una función que comprueba si una variable es de tipo array.

La funcion se llama is_array y devuelve si la variable es un array o no.

Documentación oficial: ES

Ejemplos

Ejemplo 1
$autos = array("Audi", "BMW", "Hundai", "Mercedes", "Ford", "Kia");
var_dump($autos);
Ejemplo 2
$autos = array("Audi", "BMW", "Hundai", "Mercedes", "Ford", "Kia");

if(is_array($autos)){
  echo "Es array.";
}else{
  echo "No es array.";
}

object

Un objeto es una esctructura de datos que contiene propiedades (lo que normalmente se considera datos) y métodos (funciones que nos permite manipular las propiedades del objeto).

En PHP existe una función que comprueba si una variable es de tipo object.

La funcion se llama is_object y devuelve si la variable es un object o no.

Documentación oficial: ES

Ejemplos

Ejemplo 1
<?php
 class Car {
   function get_color() {
      echo "El color car es blanco";
   }
 }
 
 // Inicializar un objeto.
 $auto = new Car();
 
 echo $auto->get_color();
Ejemplo 2
<?php
 class Car {
   function get_color() {
      echo "El color car es blanco";
   }
 }
 
 // Inicializar un objeto.
 $auto = new Car();
 
 if(is_object($auto)){
   echo "Es un object.";
 }else{
   echo "No es un object.";
 }

callable

Los tipos callable son cualquier cosa que se puede llamar como una devolución de llamada. Las cosas que pueden denominarse "devolución de llamada" son las siguientes:

  • Funciones anonimas.
  • Funciones estándar de PHP (no construcciones de lenguaje).
  • Clases estáticas.
  • Clases no estáticas (usando una sintaxis alternativa).
  • Objetos específicos / Métodos de clase.
  • Los objetos mismos, siempre que el objeto se encuentre en la clave 0 de una matri .

iterable

Tipo especiales

Resource

Un recurso es un tipo especial de variable que hace referencia a un recurso externo, como un archivo, socket, flujo, documento o conexión.

Ejemplos

Ejemplo 1

La función mysqli_connect() abre una nueva conexión al servidor de MySQL.

<?php
  $conn = mysqli_connect("127.0.0.1", "root", "", "test");
  var_dump($conn);
Observación

La variable $conn se puede reasignar posteriormente con otro recurso o con el valor NULL.

Ejemplo 2
<?php
  $file = fopen('/etc/passwd', 'r');

  echo gettype($file);
  # Out: resource

  echo $file;
  # Out: Resource id #2

NULL

Tipo de dato NULL que es un valor que indica ausencia de valor.

Una variable puede ser nula por tres razones:

  • Se le asignó un valor NULL.
  • No se le asignó aún ningún valor.
  • Se anuló con la función unset()

La asignacion de NULL tiene esta sintaxis:

<?php
  $var = NULL;

Operadores

Operadores aritméticos

Suma

Suma: $a + $b

Resta

Resta: $a – $b

Multiplicación

Multiplicación: $a * $b

División

División: $a / $b

Resto de una división

Resto de una división: $a % $b

Incremento

Incremento: $a++

Decremento

Decremento: $b--

Operadores de comparación

Menor que

Menor que: $a < $b

Mayor que

Mayor que: $a > $b

Menor o igual que

Menor o igual que: $a <= $b

Mayor o igual que

Mayor o igual que: $a >= $b

Igual que

Igual que: $a == $b

Distinto que

Distinto que $a != $b


Estructuras de control

Funciones

Clases

Constantes

Es posible definir valores constantes en función de cada clase manteniéndola invariable. Las constantes se diferencian de las variables comunes en que no utilizan el símbolo $ al declararlas o emplearlas. La visibilidad predeterminada de las constantes de clase es public.

Observaciones:

  • Las constantes de clase están asignadas una vez por clase, y no por cada instancia de la clase.

Ejemplos

Definición y uso de una constante

<?php
  class MiClase
  {
     const CONSTANTE = 'valor constante';
 
     function mostrarConstante() {
         echo  self::CONSTANTE . "\n";
     }
  }
 
  echo MiClase::CONSTANTE . "\n";
 
  $nombreclase = "MiClase";
  echo $nombreclase::CONSTANTE . "\n"; // A partir de PHP 5.3.0
 
  $clase = new MiClase();
  $clase->mostrarConstante();
 
  echo $clase::CONSTANTE."\n"; // A partir de PHP 5.3.0
?>

Interfaces

Excepciones

Namespaces

Extras

  • El problema de las comillas
  • Break
  • Include y require - Qué son, diferencias y cómo usarlos
  • Extending and implementation
  • Type Hint
  • HTTP request