Plantilla:PHP/MasSintaxis

De WikiEducator
Revisión a fecha de 09:15 21 sep 2018; ManuelRomero (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar
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 ;
Icon present.gif
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>


Icon present.gif
Tip: También puede haber ;
  <html>
    ......
    <?php echo "hola" ;?>
    <!-- instrucciones html -->
    <?php echo "otro hola" ; ?>
    <!-- mas instrucciones html -->
    <?php echo "otra instrucción " ; ?>
    .....
  </html>




Icon activity.jpg
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

1.png




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
 Valor de la variable 16

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.


Icon inter.gif
Recursos de la Web



Icon activity.jpg
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




Icon qmark.gif
Pregunta
Dónde escribir código php

  • Donde queramos que se ejecute algo

CodigoPHP.png
  • 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


Icon summary.gif
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)



Icon key points.gif

Empecemos aplicar el modelo vista controlador

  • Podemos llevar este criterio desde el principio siguiente el esquema siguiente




Icon casestudy.gif
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.


Icon key points.gif

Include Vs Require

  • 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


Icon key points.gif

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


Icon activity.jpg
Probando include require
{{{1}}}




Icon inter.gif
Recursos de la Web



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
 bool isset ( $variable )
  • 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
bool empty ($varriable)
  • Determina si una variable no existe. Devuelve true si no existe o su valor está vacío


Icon activity.jpg
Actividad

Probamos las fuciones var_dump() que nos da información sobre el valor y el tipo



Icon activity.jpg
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



Icon activity.jpg
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

Funciones is-xxx.png

  • 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);
...


Icon activity.jpg
Actividad

Visualizar de qué tipo es la expresión mostrada en el código siguiente y visualiza el valor de la expresión


  $a=5;
unset
  • Destruye la variable especificada perdiéndose su valor

void unset ($var)