|
|
Línea 1: |
Línea 1: |
− | <div class="slide"> | + | <div class="slide"> |
| ;Separando instrucciones | | ;Separando instrucciones |
| *Para separar una instrucción de otra usaremos ''''';''''' (punto y coma) | | *Para separar una instrucción de otra usaremos ''''';''''' (punto y coma) |
Línea 76: |
Línea 76: |
| [[Image:1.png]] | | [[Image:1.png]] |
| }} | | }} |
− | | + | </div> |
− | <div class='slide> | + | <div class='slide'> |
| ===Comentarios === | | ===Comentarios === |
| *Son ignorados por el intérprete, no generan instrucciones, pero se consideran parte del software | | *Son ignorados por el intérprete, no generan instrucciones, pero se consideran parte del software |
Línea 98: |
Línea 98: |
| Con la información de mi código | | Con la información de mi código |
| */ | | */ |
| + | ?> |
| </source> | | </source> |
| *Así como comentar las funciones como veremos | | *Así como comentar las funciones como veremos |
Línea 107: |
Línea 108: |
| </div> | | </div> |
| | | |
− | <div class='slide> | + | <div class='slide'> |
| *Es bueno escribir al principio del script | | *Es bueno escribir al principio del script |
| <source lang=php> | | <source lang=php> |
Línea 116: |
Línea 117: |
| * Version: 17:40 | | * Version: 17:40 |
| */ | | */ |
| + | ?> |
| </source> | | </source> |
| </div> | | </div> |
Línea 159: |
Línea 161: |
| }} | | }} |
| </div> | | </div> |
− | | + | <div class='slide'> |
| ===Dónde poner el código embebido=== | | ===Dónde poner el código embebido=== |
| <br/> | | <br/> |
Línea 208: |
Línea 210: |
| </body> | | </body> |
| </html> | | </html> |
| + | ?> |
| </source> | | </source> |
| | | |
Línea 252: |
Línea 255: |
| | | |
| }} | | }} |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
| | | |
| </div> | | </div> |
Línea 355: |
Línea 353: |
| ?> | | ?> |
| </source> | | </source> |
| + | }} |
| </div> | | </div> |
| <div class="slide"> | | <div class="slide"> |
Línea 509: |
Línea 508: |
| http://manuel.infenlaces.com/apuntes/existencia_valor_variables | | http://manuel.infenlaces.com/apuntes/existencia_valor_variables |
| *Tener en cuenta que si evaluamos si una variable está vacía no es | | *Tener en cuenta que si evaluamos si una variable está vacía no es |
| + | </div> |
| <div class="slide"> | | <div class="slide"> |
| ;[http://es1.php.net/manual/es/function.empty.php empty] | | ;[http://es1.php.net/manual/es/function.empty.php empty] |
Revisión de 22:28 21 oct 2018
- Separando instrucciones
- Para separar una instrucción de otra usaremos ; (punto y coma)
- Su uso es obligatorio a excepción de la última instrucción que se puede obviar
- Esto es por que el fin de código php ?> implica esta instrucción
- Nosotros mejor lo usaremos siempre.
- La instrucción inicio de bloque y fin de bloque no lleva nunca ;
Tip: Si solo queremos insertar una instrucción puede suele obviarse el
;
<html>
......
<?php echo "hola" ?>
<!-- instrucciones html -->
<?php echo "otro hola" ?>
<!-- mas instrucciones html -->
<?php echo "otra instrucción " ?>
.....
</html>
Tip: También puede haber ;
<html>
......
<?php echo "hola" ;?>
<!-- instrucciones html -->
<?php echo "otro hola" ; ?>
<!-- mas instrucciones html -->
<?php echo "otra instrucción " ; ?>
.....
</html>
Probando código php
- Haz un programa que dónde incluyas código dentro del body
- Muestra con etiqueta h1, h2 y h3 tres frases
- Utiliza la función echo para visualizar
- Muestra en el título un texto escrito desde php
- Compara el fichero del servidor con el que recibe el cliente
Posible solución |
---|
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title><?php echo "Este es un título desde php" ?></title>
</head>
<body>
<?php
echo "<h1>Mensaje en texto de h1</h1>";
echo "<h2>Mensaje en texto de h2</h2>";
echo "<h3>Mensaje en texto de h3</h3>";
?>
</body>
</html>
|
|
Comentarios
- Son ignorados por el intérprete, no generan instrucciones, pero se consideran parte del software
- En php tengo 4 formas de hacer comentarios
<?php
/*
Este código no hace nada pero muestra
la sintaxis de los comentarios
como este que ocupa varias líneas tipo lenguaje C o Java
*/
$miVariable= 8;// Esta parte de la línea se ignorará
$miVariable+= 8;# y esta parte de línea tambien
echo "Valor de la variable $miVariable";
//Este es otro comentario de una sola línea
#Este es otro modo de hacer comentarios tipo script de linux
/**
Este comentario permite insertar información
Para que luego phpDocumentor genere una página web
Con la información de mi código
*/
?>
- Así como comentar las funciones como veremos
- Este código nos visualizará lo siguiente
El resto del código será ignorado
- Es bueno escribir al principio del script
<?php
/**
* User: Nombre y apellidos
* Date: 19/10/17
* Version: 17:40
*/
?>
- Aquí tienes la referencia para ver las diferentes directivas para generar código
- Más adelante en el curso las veremos.
probando comentarios
- Escribe la siguiente función anterior en un fichero php
function miFuncion($num1, $num2){
if ($num1>$num2)
return $num1;
else
return $num2;
Ahora justo en la línea de encima de función escribe
- y luego presiona intro
- Te debería de quedar
/**
*
* @param type $num1
* @param type $num2
* @return type
*/
function miFuncion($num1, $num2){
if ($num1>$num2)
return $num1;
else
return $num2;
|
Dónde poner el código embebido
Pregunta
Dónde escribir código php
|
- Donde queramos que se ejecute algo
- Se ejecuta como si fuera un solo programa
- A la hora de incluir php podemos se usa mucho la filosofía Modelo Vista /Controlador que veremos en otro tema
Modelo vista controlador
- Trata de separar el código según su cometido, de forma muy resumida
- Hay acciones que realizan cálculos y obtienen resultados (Controlador
- Hay acciones que lo que hacen es visualziar valores (Vista)
- Hay acciones que se encargan de interactuar con la base de datos (Modelo)
|
Empecemos aplicar el modelo vista controlador
- Podemos llevar este criterio desde el principio siguiente el esquema siguiente
esqueleto MVC |
---|
<!-- Empecemos nuestro fichero escribiendo instrucciones php
Estas instrucciones realizarán cálculos y obtendrán valores
En ningúm momento generan salidas,
Trataremos de almacenar los valores en variables
-->
<?php
//instrucciones php
$variables = "Mensaje escrito desde php";
?>
<!--Ahora el código html-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>probando php</title>
</head>
<body>
<!--Dentro del html cuando necesitemos ver valores
los escribiemo
También puede ser que necesitemos instrucciones
las escribimos, pero intentando escribir lo necesario.
Esto es vista
-->
<h1> <?php echo $variable ?></h1>
</body>
</html>
?>
|
|
|
Programa para ver si un número es o no par
|
|
No te preocupes si no entiendes el código, lo iremos viendo
<?php
//-----------CONTROLADOR-----------------------------
//Instrucciones que realizan cálculos
//Guardo el resultado que quiero mostrar en variables
$a = rand(1, 100); //Genero un número aleatorio
$fecha = date("d m Y", time()); //Obtenemos la fecha
$title = "Hoy, $fecha, veremos si '$a' es par o impar "; //Creo un título
if ($a % 2 == 0) //Si el número es par
$msj = "El número $a es par";
else
$msj = "El número $a es impar";
?>
<!-- Ahora metemos el código php cuando lo necesitemos-->
<!------------------- VISTA (solo la parte php)----------------------->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>probando php</title>
</head>
<body>
<h1> <?php echo $title ?></h1>
<hr />
<h3> <?php echo $msj ?></h3>
</body>
</html>
|
Escribir PHP con directivas de inclusión
- Podemos escribir el código php escribiéndolo en un fichero aparte y luego lo incluimos.
- Incluimos el fichero explícitamente
- Para ello usamos directivas o instrucciones del tipo include
include('ruta/nobrefichero');
require('ruta/nobrefichero');
include_once('ruta/nombrefichero');
require_once('ruta/nombrefichero');
- Ambas son palabras reservadas del lenguaje y sirven para incluir el contenido de un fichero con sentencias php en esa posición del código.
- Ambas incluyen el contenido de un fichero php en esa posición
- Con include si no se encuentra se continúa ejecutando en esa posición
- Con require si no está el fichero se detiene en ese punto la ejecución del script
|
include/require Vs include_once/require_once
- Ambas incluyen el contenido de un fichero php en esa posición
- include/require siempre buscan e incluyen el fichero en esa posición
- include_once/require_once antes de incluirlo mira a ver si ya lo incluyó previamente en cuyo caso ya no lo hace
|
Probando include require
Crea 4 ficheros con el siguiente código
fichero_include.php
<?php
echo "<b><i>Hola desde un fichero include </b></i><hr />";
?>
fichero_include_once.php
<?php
echo "<b><i>Hola desde un fichero include once </b></i><hr />";
?>
fichero_require.php
<?php
echo "<b><i>Hola desde un fichero require </b></i><hr />";
?>
fichero_require_once.php
<?php
echo "<b><i>Hola desde un fichero require once </b></i><hr />";
?>
Ahora crea un programa principal dónde uses las instrucciones de inclusión vistas en este apartado.
<?php
echo "<h2>Ahora vamos a incluir un fichero con include</h2>";
include 'ficheros/fichero_include.php';
echo "<h2>ahora vamos a incluir un fichero con require</h2>";
require 'ficheros/fichero_require.php';
echo "<h2>Ahora vamos a incluir un fichero con include_once</h2>";
include_once 'ficheros/fichero_include_once.php';
echo "<h2>Ahora vamos a incluir un fichero con require_once</h2>";
require_once 'ficheros/fichero_require_once.php';
echo "<h2>Ahora vamos a incluir un fichero que no existe con include</h2>";
include 'ficheros/fichero_no_existe_include.php';
echo "Vemos que no pasa nada, por que el fichero no existe pero sigue <hr />";
echo "<h2>Ahora volvemos a incluir un fichero con include_once</h2>";
include_once 'ficheros/fichero_include_once.php';
echo "Vemos que no pasa nada, por que el fichero ya se había incluido y no se vuelve a incluir<hr />";
echo "<h2>Ahora volvemos a incluir un fichero con require_once</h2>";
require_once 'ficheros/fichero_require_once.php';
echo "Vemos que no pasa nada, por que el fichero ya se había incluido y no se vuelve a incluir<hr />";
echo "<h2>Ahora vamos a incluir un fichero con include para ver que sí que se vuelve a incluir</h2>";
include 'ficheros/fichero_include.php';
echo "<h2>Ahora vamos a incluir un fichero con require y vemos que sí se vuelve a incluir</h2>";
require 'ficheros/fichero_require.php';
echo "<h2>Ahora no incluimos con require un fichero que no existe</h2>";
require 'ficheros/fichero_no_existe_require.php';
echo "Esta línea ya no se imprimirá ni nada que vaya después de aquí";
?>
|
Tip:
- Siéntete cómoda en modificar el fichero y ver el resultado
- Observa que estas instrucciones no son exactamente funciones, por lo que no necesitan paréntesis (aunque se puede poner por mantener una homogeneidad con sintaxis del uso o invocación de funciones)
include 'ficheros/fichero_include.php'
//Es léxicamente y sintácticamente igual que
include ('ficheros/fichero_include.php');
}}
- Sensitive case?
- El lenguaje es sensible a mayúsculas y minúsculas en los siguientes casos:
- En los identificadores de variables
$edad =10;
$Edad =20;
$edad y $Edad son 2 variables diferentes
- En los nombres de funciones
function $calculaEdad($anyo){
...
}
function $CalculaEdad($anyo){
...
}
//Son dos funciones diferentes
- El lenguaje NO es sensible a mayúsculas y minúsculas en:
- las palabras reservadas (if o If o IF o iF,...)
If () {
//..
}
IF () {
//..
}
if () {
//..
}
iF () {
//..
}
//Todas las construcciones if son correctas
Funciones propias de php sobre tipos y valores
http://php.net/manual/es/ref.var.php
- Existen una serie (muchas) de funciones que son interesantes de conocer
- Estas funciones ya están creadas y se pueden usar directamente
- Están relacionadas con los tipos de datos y valores
- Alguna de ellas son extremadamente útiles y utilizadas, por ejemplo antes de procesar un dato, hay que ver que dicho dato tenga valor.
- A continuación trataremos alguna de ellas
- var_dump
void var_dump($expresion)
- Nos da información sobre la estructura de un valor resultado de una expresion
- isset
- verifica que una variable tiene valor (está definida y no tiene un valor null)
<?php
$VariableValor= 5;
print ("El valor de la variable es $VariableValor");
print ("El valor de otra variable es $OtraVariableValor");
if (isset($VariableValor))
print ("VariableValor tiene valor asignado");
else
print ("VariableValor no no tiene valor asignado");
if (isset($OtraVariableValor))
print ("OtraVariableValor tiene valor asignado");
else
print ("OtraVariableValor no no tiene valor asignado");
?>
Funciones para determinar existencia de variables
Tenemos tres funciones muy parecidas pero no del todo iguales
Función
|
Significado
|
is_null($variable)
|
Determina si una variable ($variable) tiene valor null
|
empty($variable)
|
Determina si una variable ($variables)está vacía
|
isset($variable)
|
Determina is una variable ha sido definida y no tiene un valor vacío.
|
- Es importante saber qué es para php un valor nulo, o si está vacía que no son conceptos sinónimos
- Valor null
-
$a=null //$a tiene valor null.
is_null($a) //true
unset($a) //Se destruye la variable y toma el valor null
is_null($a) //true
//$b una variable que no existe tiene el valor null
is_null($b) //true
- Variable vacía
$a=null //$a está vacía
empty($a) //true
$a="";
empty($a) //true
$a="hola";
empty($a) //false
unset($a);
empty($a) //true
$a=false;
empty($a) //true !OJO!
$a=0;
empty($a) //true !OJO!
- Puedes ver la siguiente app en la que puedes aportar valores
http://manuel.infenlaces.com/apuntes/existencia_valor_variables
- Tener en cuenta que si evaluamos si una variable está vacía no es
- empty
- Determina si una variable no existe. Devuelve true si no existe o su valor está vacío
Actividad
Probamos las fuciones var_dump() que nos da información sobre el valor y el tipo
|
Actividad
Usando la función xxxyyy donde xxx e yyy será dec oct bin o hex para convertir el valor de un sistema numérico a otro
|
Actividad
- Define las siguientes variables que se especifican en el código siguiente y verifica el resultado con empty()
$num=0;
$nombre="";
$nombre=null;
$nombre="0";
$pregunta = FALSE;
|
- gettype]
- Devuelve el tipo de una variable
string gettype($variable)
- [1]is-double is-int, is-xxx
- son funciones donde xxx especificado en el último nombre, puede ser cualquiera de los tipos
- Todas ellas devuelve un booleano que indica si la variable, valor o expresion es o no de ese tipo,
string is_int($variable);
string is_double($variable);
string is_bool($variable);
string is_integer($variable);
string is_null($variable);
string is_string($variable);
...
Actividad
Visualizar de qué tipo es la expresión mostrada en el código siguiente y visualiza el valor de la expresión
|
- unset
- Destruye la variable especificada perdiéndose su valor
void unset ($var)