IES Luis Vélez de Guevara - Écija - Spain
Algoritmo
Secuencia de pasos para resolver un determinado problema.
Ordinograma
Representación gráfica de un algoritmo.
-3 0 994
3.01 3.14 0.001
Verdadero Falso
'A' '2' '@' '-'
"C/ Nueva, 1"
Constante
Dato guardado en memoria que no cambia de valor.
Variable
Dato guardado en memoria que puede cambiar de valor.
Asignación
Entrada
Salida
También llamados operadores de comparación
sudo apt install php
php -a
php > echo "Hola mundo";
<?php
// holamundo.php
echo "Hola mundo\n";
?>
php holamundo.php
De una sola línea
echo "Hola\n"; // Un mensaje por pantalla
echo "Hola\n"; # El mismo mensaje por pantalla
De varias líneas
/*
Programa super corto.
Muestra un mensaje por pantalla.
*/
echo "Hola\n";
echo "Hola", 32, "Adiós", true;
print "Hola";
$frutas = ["manzana", "naranja", "fresa"];
print_r ($frutas);
var_dump ($frutas);
echo "Introduce tu edad: ";
$edad = (int) fgets (STDIN);
// Declaración de variables
$abierto = true;
$edad = 15;
$altura = 1.62;
$nombre = "Ana López";
$frutas = ["manzana", "naranja", "fresa"]; // ARRAY
class Persona { // CLASE ("Plantilla de objeto")
// Propiedades
private $nombre = null;
private $apellidos = null;
// Constructor:
function __construct($nombre, $apellidos) {
$this->nombre = $nombre;
$this->apellidos = $apellidos;
}
}
$pepe = new Persona ("José", "García"); // OBJETO
echo gettype ($abierto); // boolean
echo gettype ($edad); // integer
echo gettype ($altura); // double
echo gettype ($nombre); // string
echo gettype ($frutas); // array
echo gettype ($pepe); // object
unset ($edad);
if (isset($edad))
echo "La variable existe";
else
echo "La variable no existe"; // se muestra este mensaje
define ("ABIERTO", true);
define ("PI", 3.14);
define ("SALUDO", "Buenos días");
echo gettype (ABIERTO);
echo gettype (PI);
echo gettype (SALUDO);
echo 2*PI;
También llamados operadores de comparación
Ordinograma
Script PHP
<?php
echo "Introduzca nota: ";
$nota = (double) fgets (STDIN);
if ($nota >= 5)
echo "APROBADO" . "\n";
else
echo "SUSPENDIDO" . "\n";
?>
Ordinograma
Script PHP
<?php
echo "Introduzca nota: ";
$nota = (double) fgets (STDIN);
if ($nota >= 5)
echo "APROBADO" . "\n";
?>
Ordinograma
Script PHP
<?php
echo "Introduzca día de la semana (1 - 7): ";
$dia = (int) fgets (STDIN);
switch ($dia) {
case 1: echo "Lunes\n"; break;
case 2: echo "Martes\n"; break;
case 3: echo "Miércoles\n"; break;
case 4: echo "Jueves\n"; break;
case 5: echo "Viernes\n"; break;
case 6: echo "Sábado\n"; break;
case 7: echo "Domingo\n"; break;
default: echo "ERROR: Día incorrecto\n";
}
?>
Ordinograma
Script PHP
<?php
$contador = 1;
while ($contador <= 10) {
echo $contador . "\n";
$contador++;
}
?>
Ordinograma
Script PHP
<?php
$contador = 1;
do {
echo $contador . "\n";
$contador++;
} while ($contador <= 10)
?>
Ordinograma
Script PHP
<?php
for ($contador = 1; $contador <= 10; $contador++) {
echo $contador . "\n";
}
?>
<?php
$frutas = ["manzana", "naranja", "fresa"];
foreach ($frutas as $fruta) {
echo $fruta . "\n";
}
?>
$numeros = array(1, 3, 5);
$cosas = array("hola", 4, 2.5);
Forma simplificada
$numeros = [1, 3, 5];
$cosas = ["hola", 4, 2.5];
print_r
y var_dump
var_dump
muestra más información ya que muestra el tipo de cada elemento.print_r ($cosas);
var_dump ($cosas);
// Para mostrar un elemento del array
echo $cosas[0]; // Muestra hola
echo $cosas[1]; // Muestra 4
// Para modificar un elemento del array
$cosas[0] = "Adiós";
$cosas[1] = "Pepe";
$cosas[] = "Coche"; // Añade el elemento al final del array
print_r ($cosas);
Se muestra
Array
(
[0] => Adiós
[1] => Pepe
[2] => 2.5
[3] => Coche
)
unset ($cosas[2]);
print_r ($cosas);
Se muestra
Array
(
[0] => Adiós
[1] => Pepe
[3] => Coche
)
El bucle más adecuado para recorrer un array es el bucle foreach
foreach ($cosas as $cosa) {
echo $cosa;
echo "\n";
}
Aunque también podemos utilizar el bucle for
for ($i = 0; $i < count($cosas); $i++) {
echo $cosas[$i];
echo "\n";
}
Se accede a cada elemento mediante una clave en lugar de usar un índice.
$capitales = ["España" => "Madrid", "Francia" => "París", "Italia" => "Roma" ];
// Accedemos a cada elemento por una clave, en lugar de usar un índice
echo $capitales["España"]; // Madrid
echo $capitales["Francia"]; // París
echo $capitales["Italia"]; // Roma
// Podemos recorrer con foreach
foreach ($capitales as $capital)
echo "$capital, "; // Madrid, París, Roma
foreach ($capitales as $clave => $valor)
echo "$clave : $valor. "; // España : Madrid. Francia : París. Italia : Roma.
Permite que cada elemento sea a su vez un array.
// Lista de coches y sus precios
$coches = array (
array("Volvo", 32000),
array("BMW", 40000),
array("Dacia", 10000)
);
echo $coches[0][0]; // Marca del primer coche
echo $coches[0][1]; // Precio del primer coche
echo $coches[1][0]; // Marca del segundo coche
echo $coches[1][1]; // Precio del segundo coche
string
pueden considerarse un array de caracteres.$nombre = "Federico";
echo $nombre[0]; // F
echo $nombre[1]; // e
foreach
para recorrer los caracteres que tiene el string
.string
debemos usar un bucle for
.// ERROR
foreach ($nombre as $letra)
echo $letra;
// CORRECTO
for ($i=0; $i < strlen($nombre); $i++)
echo $nombre[$i] . "\n";
Operaciones con números
$num1 = -12.349;
$num2 = 12.349;
$numeros = [3.14, 4, 9, 0, -5];
echo abs ($num1); // 12.349 (valor absoluto)
echo round($num1); // -12 (redondeo)
echo round($num1, 2); // -12.35 (redondeo a 2 decimales)
echo floor($num1); // -13 (número entero por abajo)
echo floor($num2); // 12 (número entero por abajo)
echo ceil ($num1); // -12 (número entero por encima)
echo ceil ($num2); // 13 (número entero por encima)
echo sqrt ($num2); // 3.51... (raíz cuadrada)
echo rand(); // (número aleatorio 0 .. muchos millones)
echo rand(10,100); // (numero aleatorio 10 .. 100)
echo min($numeros); // -5 (mínimo número de un array)
echo max($numeros); // 9 (máximo número de un array)
Operaciones con texto
$texto1 = " hola ";
$texto2 = "fin";
$texto3 = "hola mundo";
echo ltrim ($texto1); // "hola " (elimina espacios por la izquierda)
echo rtrim ($texto1); // " hola" (elimina espacios por la derecha)
echo trim ($texto1); // "hola" (elimina espacios a derecha e izquierda)
echo strlen ($texto2); // 3 (longitud del string)
echo strtolower($texto2); // "fin" (pone en minúsculas)
echo strtoupper($texto2); // "FIN" (pone en mayúsculas)
echo strrev ($texto2); // "nif" (invierte la cadena)
echo ucfirst ($texto3); // "Hola mundo" (Upper Case First)
echo ucwords ($texto3); // "Hola Mundo" (Upper Case Words)
$palabras = ["Hello", "World"];
// "mun" (devuelve a partir de la posición 5, 3 caracteres)
echo substr($texto3, 5, 3);
// 1 (cuantas veces aparece un substring)
echo substr_count($texto3, "do");
// "hola Raimundo" (sustituye a partir de la posición 5, 0 caracteres con Rai, es decir inserta)
echo substr_replace($texto3, "Rai", 5, 0);
// "Hello World" (convierte array a string)
echo implode(" ", $palabras);
// ["hola", "mundo"] (convierte string a array)
print_r (explode(" ", $texto3));
Formatos
l Día de la semana
d Día del mes
m Mes en número
F Mes en texto
M Mes en texto (3 primeras letras)
y Año (2 cifras)
Y Año (4 cifras)
h Hora, formato 12h
H Hora, formato 24h
i Minutos
s Segundos
e Zona horaria
P Diferencia de zona respecto a Greenwich
Ejemplos
echo time (); // Tiempo en segundos desde 1 Enero 1970
echo strtotime ("now"); // Igual al anterior
echo date ("l d F Y H:i:s e P"); // Fecha y hora actual
echo date ("l d F Y H:i:s e P", time()); // Igual al anterior
echo date ("l d F Y H:i:s", strtotime("+1 week 2 days 4 hours 2 seconds"));
echo date ("l", strtotime("10 September 2000"));
echo date ("l d F Y", strtotime("next Thursday"));
echo date ("l d F Y", strtotime("last Monday"));
Funciones básicas
fopen Abrir archivo
fclose Cerrar archivo
feof End Of File
fgets Leer línea de texto del archivo
fputs Escribir línea de texto del archivo
Ejemplo: Escribir en archivo de texto
// Abrimos archivo de texto en modo escritura
$archivo = fopen("test.txt","w"); // w: Sólo escritura
// Escribimos las siguientes cadenas en el archivo
fputs($archivo, "Primera línea\n");
fputs($archivo, "Segunda línea\n");
// Cerramos el archivo
fclose($archivo);
Ejemplo: Leer de archivo de texto
// Abrimos archivo de texto en modo lectura
$archivo = fopen("test.txt", "r"); // r: Sólo lectura
// Leemos y mostramos líneas hasta End Of File
while(! feof($archivo)) {
$linea = fgets($archivo);
echo $linea;
}
// Cerramos el archivo
fclose($archivo);
sleep(3); // parada de 3 segundos
usleep(3000000); // parada de 3 segundos (3000000 microsegundos)
// Archivo funciones.php
function suma ($a, $b) { // $a y $b son parámetros formales
return $a + $b;
}
function resta ($a, $b) {
return $a - $b;
}
// ...
// indicamos que vamos a hacer uso de funciones.php
include "funciones.php";
// 2 y 3 son parámetros reales (también llamados argumentos)
echo suma (2, 3);
echo resta (2, 3);
<?php
$a = 1; // variable global
function mostrar() {
$a = 5; // variable local
echo $a;
}
mostrar(); // 5
echo $a; // 1
?>
global
.$a = 1; // variable global
// INCORRECTO
function mostrar1() {
echo $a; // $a no está definida aquí.
}
// CORRECTO
function mostrar2() {
global $a;
echo $a; // $a se refiere a la variable global
}
mostrar1(); // ERROR
mostrar2(); // 1
function mostrar() {
static $a = 0;
echo $a;
$a++;
}
mostrar(); // 0
mostrar(); // 1
mostrar(); // 2
include
require
include_once
require_once
Ejemplos
// si funciones.php no existe, no se produce error
include "funciones.php";
// si funciones.php no existe, se produce error
require "funciones.php";
// Las siguientes sentencias, son iguales a las anteriores,
// salvo que el archivo se incluye una sola vez.
// Es muy útil en proyectos muy grandes, donde
// la inclusión de un archivo podría producirse en varios sitios.
include_once "funciones.php";
require_once "funciones.php";