PHP Curso Día 15/12/23

Descargar archivo completo TXT
El intérprete de PHP necesita delimitadores para saber el contenido a procesar, para ello usaremos <?php al inicio y ?> al finalizar

	<?php
		...
		codigo php
		...
	?>
	
Todas las líneas en PHP deben terminar en ; como en javascript para indicar el final de la sentencia
El comando ECHO envia a pantalla la información indicada. Podemos usarla con o sin paréntesis. El texto contenido debe ir entre comillas o apóstrofes.

	echo ('Pruebas');
	echo 'mas pruebas';
	echo "<br/>";
	print "Alternativa a echo<br/>";
	print "Como funciona como varios contenidos";
	
Pruebasmas pruebas
Alternativa a echo
Como funciona como varios contenidos
Al inicio establecemos aquellas variables y constantes a utilizar
la diferencia básica entre variable y constante es la capacidad de cambiar su valor
y a nivel visual las variables tienen un prefijo $

	<?php
		$titulo='Mi pagina php';
		$fecha=date("d/m/Y");
		$hora=date("H:i:s");
		const prueba='mi texto --de-- prueba';
	?>
	
Los comentarios en el código se pueden poner con // al inicio, o bien con #, o bien como en css /* ..... */

//comentario de una linea
#otro comentario para php
/* bloque de comentarios con apertura
Y CIERRE en otra linea */
	
Podemos insertar cualquier tipo de texto, por ejemplo html para que se interprete en el navegador

echo "texto "."mas texto<br/>";
	
texto mas texto
usar +, *, - y / para realizar operaciones con números
Las operaciones pueden ser directas dentro del mismo comando, en este caso sumamos 3.54 + 15.21

echo 3.54 + 15.21;
	
18.75
Para escribir texto usaremos \n y \r para ejecutar nueva linea o simular retorno de carro
El \ (slash) se utiliza para 'escapar' de la interpretación normal a una procesada por php
En este ejemplo hacemos una variable $texto1 para puego procesar el texto con o sin interprete de html
En el caso de no querer procesar el html pondremos nl2br(var) para que evite procesar el html.
Este ejemplo define una variable texto1 con un texto que incluye retornos

$texto1= "Ejemplo de texto\ncon linea nueva \nusado por el mismo texto
"; echo $texto1; echo nl2br($texto1);

Ejemplo de texto con linea nueva usado por el mismo texto
Ejemplo de texto
con linea nueva
usado por el mismo texto
PHP permite lanzar directamente código interpretado con <?=valor ?>

<?='¿que ha pasado?' ?>
<?=25-18*3 ?>
	
¿que ha pasado? -29
Ejemplo de integración de código html en texto a enviar por php.
Se ha incorporado una variable titulo (definido al inicio), que interpreta y sustituye contenido
Ejemplo de integración dos variables (fecha) y (hora) dentro del contenido de texto

echo "<strong>$titulo</strong>"; 
echo "<p>La fecha de hoy es $fecha y la hora es $hora</p>";
	
Mi pagina php 1215

La fecha de hoy es 13/05/2024 y la hora es 21:36:32

Ejemplo de mostrar variables del entorno php a pantalla como información del sistema. Algunas de estas son: phpinfo, php(INFO_CREDITS)

echo phpversion();
// echo phpinfo();
// echo phpinfo(INFO_CREDITS);
	
8.2.15
Formas de definir una variable: directamente asignando a $variable un valor contenido entre comillas (o apostrofes) si es texto o libre si son números
usando el comando define(variable, valor) para aquellas que sean constantes
poniendo el comando const antes de la variable a definir
NOTA: Las constantes nunca pueden tener $ en su inicio

	$titulo='Mi pagina php';
	$fecha=date("d/m/Y");
	$hora=date("H:i:s");
	const prueba='mi texto --de-- prueba';
	const PI=3.14159;
	define ('unavariable',"PHP VERSION");
	
Valores retornados de las variables:
Mi pagina php
13/05/2024
21:36:32
mi texto --de-- prueba
3.14159
PHP VERSION
En este ejemplo primero definimos una variable que luego reutilizamos agregando más texto y demostramos la concatenación de textos en pantalla

	define('otravariable',"PHP VERSION8.xx");
	$nueva=otravariable.'textoagregado';
	echo '<br/>Aqui la constante= ' .prueba;
	echo '<br/>Aqui la otra= ' .otravariable;
	echo '<br/>Aqui la suma de otravariable con texto= ' .$nueva;
	define('PI2',3.14159);
	echo '<br/>Valor PI2 ' .PI;
	

Aqui la constante= mi texto --de-- prueba
Aqui la otra= PHP VERSION8.xx
Aqui la suma de otravariable con texto= PHP VERSION8.xxtextoagregado
Valor PI2 3.14159
Variables y Operaciones con variables
Las operaciones con variables funcionan como en cualquier otro lenguaje de programación
ATENCION: en ECHO el uso de comillas evita ejecutar el intérprete de variables,
mientras que el apóstrofe permite de forma recurrente la interpretación de variables creadas

	$total=123;
	$total=$total+13; //las operaciones son normales como otros lenguajes
	echo $total*10;
	$variable0=13;
	$variable1=5;
	$variable2='variable1';
	$variable3='variable2';
	echo $$$variable3;  //interpreta las variables de forma recurrente resolviendo el contenido de la anterior sin eval
	echo $variable1.$variable2."<br/>";  // punto union de cadenas
	echo $variable0+$variable1."<br/>";  // mas suma numeros, si no hay numeros se la pega
	echo $variable0.$variable1."<br/>"; 
	
13605
5variable1
18
135
Diferencia entre PRINT y ECHO
Print imprime una cadena, echo puede imprimir más de una separada por coma
Print retorna el valor 1 al terminar, mientras que echo no retorna valores
print_r imprime el contenido de una variable y var_dump imprime los detalles de la variable y tipos de contenido

	print 'Hola';
	echo 'Hola', 'Hola de nuevo';
	//Se imprime "Hola" y la variable $foo toma el valor 1
	$foo = print 'Hola';
	$foo = array( 5, 0.0, "Hola", false, '' );

	var_dump( $foo );
	//Imprime
	array(5) {
		[0]=> int(5)
		[1]=> float(0)
		[2]=> string(4) "Hola"
		[3]=> bool(false)
		[4]=> string(0) ""
	}

	print_r( $foo );
	//Imprime
	Array (
		[0] => 5
		[1] => 0
		[2] => Hola
		[3] =>
		[4] =>
	)
	$output = print_r( $foo, true );
	
Hola
HolaHola de nuevo
Hola
array(5) { [0]=> int(5) [1]=> float(0) [2]=> string(4) "Hola" [3]=> bool(false) [4]=> string(0) "" }
Array ( [0] => 5 [1] => 0 [2] => Hola [3] => [4] => )
ESCAPANDO caracteres como apóstrofes y comillas. Operaciones de números y texto

	echo "It's raining<br/>";
	echo 'It\'s raining<br/>'; //siempre escapar los caracteres coincidentes
	echo 'Mi nombre es \'adriana\'<br/>';
	echo 'Mi nombre es "adriana"<br/>';
	echo "Mi nombre es \"adriana\"<br/>";
	echo 'variable1 = ' .$variable1.'<br/>';
	$fruta='manzana';
	echo "una ".$fruta.'<br/>'; //con comillas tenemos interpretacion de variables contenidas
	echo "dos {$fruta}s".'<br/>'; //si ponemos apostrofe, ese contenido se libera sin interprete
	echo "\u{1F600}";  //caracteres unicode interprete directo
	echo "$fruta[0]".'<br/>'; //se puede utilizar directamente [] para tomar según matriz el caracter
	echo "$fruta[0]"."$fruta[3]"."<br/>"; //para tomar varios hay q asignar cada letra
	echo (1+"1")."<br/>"; // el texto si puede lo interpreta como numero si agrega texto da error por falta de interprete
	// echo (1."1")."<br/>";  //esto deberia encadenar pero da un error por numero inicial
	// tipos de datos
	// int enteros
	// float  con decimales
	// string  texto
	// boolean 0/1 false/true
	// object  objetos
	// sobre una clase se crean instancias que generan el objeto
	

It's raining
It's raining
Mi nombre es 'adriana'
Mi nombre es "adriana"
Mi nombre es "adriana"
variable1 = 5
una manzana
dos manzanas
😀m
mz
2
Tipos de variables y valores

	// boolean 0/1 false/true
	$sino=true;
	if ($sino == true){print "El valor es true
";} $sino=1; if ($sino == true){print "El valor es (1) true
";} $sino=0; //la condición usa ! para decir que NO es verdad el valor indicado if (!$sino){print "El valor es (0) false
";} // int enteros $lado=14; $area=$lado*$lado; // los numeros enteros se limitan en PHP por las variables PHP_INT_SIZE y PHP_INT_MAX print "Un cuadrado de lado $lado cm \ntiene un área de $area cm2
"; // float con decimales $numerodec=3.; // los decimales se identifican con tener el . en el número sin falta de decimales var_dump($numerodec); print("<br/>"); $numerodec=$numerodec + .1623; print "Resultado= $numerodec<br/>"; $numerodec=12**3; // el doble asterisco se interpreta como un exponencial 12 elevado a 3 print ("12.4^3 = $numerodec <br/>"); // string texto $saludo="Hola Don Pepito"; print "$saludo<br/>"; $saludo[0]="M"; // modificar contenido de la cadena usándola como matriz $saludo[9]="B"; $saludo[11]="n"; print "$saludo<br/>";
El valor es true
El valor es (1) true
El valor es (0) false
Un cuadrado de lado 14 cm tiene un área de 196 cm2
float(3)
Resultado= 3.1623
12.4^3 = 1728
Hola Don Pepito
Mola Don Benito
Variables de Matrices y almacenamiento en ellas

	$ciudades_esp []='Madrid'; // las matrices se redimensionan en la medida que agregas datos
	$ciudades_esp []='Oviedo'; // utiliza siempre []
	$ciudades_esp []='Lugo';
	$ciudades_esp []='Salamanca';
	echo $ciudades_esp [1].$ciudades_esp [3]." La primera y tercera<br/>";
	foreach ($ciudades_esp as $ciudad) {
		echo $ciudad . "<br>";
	}
	$ciudades['ESP']=$ciudades_esp; //asociamos a una variable en una matriz, el valor de una matriz completa (poco operativo)
	
OviedoSalamanca La primera y tercera
Madrid
Oviedo
Lugo
Salamanca
Variables de Matrices y almacenamiento en ellas
No es necesario dimensionar la matriz, se asigna directamente los valores insertados con formato JSON
Evitar llamar a un valor no existente, por ejemplo $matriz[5] si solo tiene 4 elementos
Nota: las matrices cuentan desde primer valor como 0, por lo que el quinto valor sería [4]

$nombres = ["Ana", "Bernardo", "Carmen"];
print $nombres[1]."<br/>"
	
Bernardo
En Matrices podemos asignar valores directamente o con notación =>
En la matriz cada asignación puede ser definida por números o textos
Los índices en el caso de números pueden ser positivos y negativos

$cuadrados[3] = 9;
$cuadrados[5] = 25;
$cuadrados[10] = 100;
// Matriz definida con la notación =>
$cuadrados = [3 => 9, 5 => 25, 10 => 100];
$matriz[10] = "diez";
$matriz[-1] = "menos uno";
$matriz["uno"] = 1;
$matriz["ciento veinte"] = 120;
// Matriz definida con la notación =>
$matriz = [10 => "diez", -1 => "menos uno", "uno" => 1, "ciento veinte" => 120];
print $matriz[ciento veinte];
print "<br/>";
$edades = ["Andrés" => 20, "Bárbara" => 19, "Camilo" => 17];
print "Bárbara tiene $edades[Bárbara] años
"; print "Bárbara tiene " . $edades["Bárbara"] . " años
"; print "Camilo tiene {$edades["Camilo"]} años
";
25
120
Bárbara tiene 19 años
Bárbara tiene 19 años
Camilo tiene 17 años
Matriz con varias dimensiones, podremos asignar directamente los valores usando la notación inicial

	$matriz = [[20, 30, 40], [100, 200, 300]];
	// En varias líneas para facilitar la lectura:
	$matriz = [
	  [20, 30, 40],
	  [100, 200, 300]
	];
	// Definiendo los elementos de primer nivel:
	$matriz[0] = [20, 30, 40];
	$matriz[1] = [100, 200, 300];
	// Definiendo los elementos de segundo nivel:
	$matriz[0][0] = 20;
	$matriz[0][1] = 30;
	$matriz[0][2] = 40;
	$matriz[1][0] = 100;
	$matriz[1][1] = 200;
	$matriz[1][2] = 300;
	
Matrices de varias dimensiones con uso en cadenas de texto
con print_r podemos recuperar el contenido completo de un array

	$datos = [
	["nombre" => "pepe", "edad" => 25, "peso" => 80],
	["nombre" => "juan", "edad" => 22, "peso" => 75]
	];
	// usamos corchetes {} para que se interprete previamente o bien el punto para concatenar
	print "{$datos[1]["nombre"]} pesa {$datos[1]["peso"]} kilos<br/>";
	print "\n";
	print " " . $datos[0]["nombre"] . " tiene " . $datos[0]["edad"] . " años<br/>";
	print "<pre>"; print_r($datos); print "</pre>";
	

juan pesa 75 kilos

pepe tiene 25 años

Array
(
    [0] => Array
        (
            [nombre] => pepe
            [edad] => 25
            [peso] => 80
        )

    [1] => Array
        (
            [nombre] => juan
            [edad] => 22
            [peso] => 75
        )

)