Diferencia entre revisiones de «Plantilla:PHP/MasSintaxis»

De WikiEducator
Saltar a: navegación, buscar
(date())
 
(15 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
<div class="slide">
 
;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 ''''';'''''
 
</div>
 
 
<div class="slide">
 
{{MRM_Resumen|Title=El ;|Si solo queremos insertar una instrucción puede suele obviarse el ''''';'''''
 
<source lang=php>
 
  <html>
 
    ......
 
    <?php echo "hola" ?>
 
    <!-- instrucciones html -->
 
    <?php echo "otro hola" ?>
 
    <!-- mas instrucciones html -->
 
    <?php echo "otra instrucción " ?>
 
    .....
 
  </html>
 
</source>
 
}}
 
</div>
 
 
<div class="slide">
 
{{MRM_Resumen|Title=El ;|También puede haber ;
 
<source lang=php>
 
  <html>
 
    ......
 
    <?php echo "hola" ;?>
 
    <!-- instrucciones html -->
 
    <?php echo "otro hola" ; ?>
 
    <!-- mas instrucciones html -->
 
    <?php echo "otra instrucción " ; ?>
 
    .....
 
  </html>
 
</source>
 
}}
 
</div>
 
<div class="slide">
 
 
{{MRM_Actividad|Title=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
 
{{Plegable|hide|Posible solución|
 
<source lang=html5>
 
</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>
 
</source>
 
 
}}
 
[[Image:1.png]]
 
}}
 
</div>
 
<div class='slide'>
 
===Comentarios ===
 
*Son ignorados por el intérprete, no generan instrucciones, pero se consideran parte del software
 
*En php tengo 4 formas de hacer comentarios
 
<source lang=php>
 
<?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
 
*/
 
?>
 
</source>
 
*Así como comentar las funciones como veremos
 
*Este código nos visualizará lo siguiente
 
<source lang=php>
 
Valor de la variable 16
 
</source>
 
El resto del código será ignorado
 
</div>
 
 
<div class='slide'>
 
*Es bueno escribir al principio del script
 
<source lang=php>
 
<?php
 
/**
 
* User: Nombre y apellidos
 
* Date: 19/10/17
 
* Version: 17:40
 
*/
 
?>
 
</source>
 
</div>
 
<div class="slide">
 
*Aquí tienes la referencia para ver las diferentes directivas para generar código
 
*Más adelante en el curso las veremos.
 
{{MRM_Recursos de la Web|
 
*Directivas para comentarios https://phpdoc.org/docs/latest/index.html
 
}}
 
</div>
 
 
<div class="slide">
 
{{MRM_Actividad|Title=probando comentarios |
 
*Escribe la  siguiente función anterior en un fichero php
 
 
<source lang=php>
 
function miFuncion($num1, $num2){
 
    if ($num1>$num2)
 
        return $num1;
 
    else
 
        return $num2;
 
</source>
 
Ahora justo en la línea de encima de función escribe
 
<source lang=php>
 
/**
 
</source>
 
*y luego presiona intro
 
*Te debería de quedar
 
<source lang=php>
 
/**
 
*
 
* @param type $num1
 
* @param type $num2
 
* @return type
 
*/
 
function miFuncion($num1, $num2){
 
    if ($num1>$num2)
 
        return $num1;
 
    else
 
        return $num2;
 
 
</source>
 
}}
 
</div>
 
<div class='slide'>
 
===Dónde poner el código embebido===
 
<br/>
 
{{MRM_Pregunta|Dónde escribir código php
 
{{MRM_Pregunta|Title=Respuesta|Dónde queramos que se ejecute algo}}
 
}}
 
</div>
 
 
<div class="slide">
 
<hr  />
 
*Donde queramos que se ejecute algo
 
<hr/>
 
[[Imagen:codigoPHP.png|center|500px]]
 
*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
 
{{MRM_Resumen|Title=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)
 
}}
 
{{MRM_Puntos clave|Title=Empecemos aplicar el modelo vista controlador|
 
*Podemos llevar este criterio desde el principio siguiente el esquema siguiente
 
;Esqueleto MVC
 
<source lang=html5>
 
<!-- 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>
 
?>
 
</source>
 
 
}}
 
 
</div>
 
<div class="slide">
 
 
 
{{MRM_Ejemplo|Title=Programa para ver si un número es o no par|
 
No te preocupes si no entiendes el código, lo iremos viendo
 
<source lang=php>
 
<?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>
 
</source>
 
 
 
}}
 
 
</div>
 
 
<div class="slide">
 
 
===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'''''
 
<source lang=php>
 
  include('ruta/nobrefichero');
 
  require('ruta/nobrefichero');
 
  include_once('ruta/nombrefichero');
 
  require_once('ruta/nombrefichero');
 
</source>
 
</div>
 
 
<div class="slide">
 
;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.
 
{{MRM_Puntos clave|Title=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}}
 
</div>
 
 
<div class="slide">
 
{{MRM_Puntos clave|Title=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}}
 
</div>
 
 
<div class="slide">
 
{{MRM_Actividad|Title=Probando include require
 
|Crea 4 ficheros con el siguiente código
 
'''''fichero_include.php'''''
 
<source lang=php>
 
<?php
 
  echo "<b><i>Hola desde un fichero include </b></i><hr />";
 
?>
 
</source>
 
'''''fichero_include_once.php'''''
 
<source lang=php>
 
<?php
 
echo "<b><i>Hola desde un fichero include once </b></i><hr />";
 
?>
 
</source>
 
'''''fichero_require.php'''''
 
<source lang=php>
 
<?php
 
  echo "<b><i>Hola desde un fichero require </b></i><hr />";
 
?>
 
</source>
 
'''''fichero_require_once.php'''''
 
<source lang=php>
 
<?php
 
  echo "<b><i>Hola desde un fichero require once </b></i><hr />";
 
?>
 
</source>
 
'''''Ahora crea un programa principal dónde uses las instrucciones de inclusión vistas en este apartado'''''.
 
<source lang=php>
 
<?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í";
 
?>
 
</source>
 
}}
 
</div>
 
<div class="slide">
 
{{MRM_Actividad|Title=Práctica|
 
*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)
 
<source lang=php>
 
include 'ficheros/fichero_include.php'
 
//Es léxicamente y sintácticamente igual que
 
include ('ficheros/fichero_include.php');
 
 
</source>
 
}}
 
 
</div>
 
 
 
 
<div class="slide">
 
{{MRM_Recursos de la Web|
 
*[http://php.net/manual/es/ php] página oficial en español LO MEJOR!!!!
 
*http://php.net/manual/es/
 
*<!-- MRM incluir en el otro documento http://php.net/manual/es/ini.core.php -->
 
 
}}
 
</div>
 
 
<div class="slide">
 
<!--4---------------------------------->
 
;Sensitive case?
 
*El lenguaje es sensible a mayúsculas y minúsculas en los siguientes casos:
 
**En los identificadores de variables
 
<source lang=php>
 
$edad =10;
 
$Edad =20;
 
$edad y $Edad son 2 variables diferentes
 
</source>
 
**En los nombres de funciones
 
<source lang=php>
 
function  $calculaEdad($anyo){
 
...
 
}
 
function $CalculaEdad($anyo){
 
...
 
}
 
//Son dos funciones diferentes
 
</source>
 
*El lenguaje '''''NO''''' es sensible a mayúsculas y minúsculas en:
 
**las palabras reservadas (if o If o IF o iF,...)
 
<source lang=php>
 
If () {
 
//..
 
}
 
IF () {
 
//..
 
}
 
if () {
 
//..
 
}
 
iF () {
 
//..
 
}
 
//Todas las construcciones if son correctas
 
</source>
 
</div>
 
 
 
 
<div class=slide>
 
<div class=slide>
  
Línea 580: Línea 157:
 
</source>
 
</source>
 
</div>
 
</div>
 
+
<br />
 
<div class="slide">
 
<div class="slide">
 
;[http://php.net/manual/es/function.unset.php unset]
 
;[http://php.net/manual/es/function.unset.php unset]
Línea 586: Línea 163:
 
void unset ($var)
 
void unset ($var)
 
</div>
 
</div>
 +
 
===Funciones de fechas===
 
===Funciones de fechas===
 
*En php hay muchas fucniones para gestionar fechas, siendo esta una tarea frecuente el las aplicaciones web.  
 
*En php hay muchas fucniones para gestionar fechas, siendo esta una tarea frecuente el las aplicaciones web.  
Línea 607: Línea 185:
 
*Me retorna el número de segundos transcurridos desde el 1 de Enero de 1970 00:00:00 GMT.  
 
*Me retorna el número de segundos transcurridos desde el 1 de Enero de 1970 00:00:00 GMT.  
 
Esta fecha está relacionada con el sistema operativo UNIX que empezó a hacerse visible a partir del año 1970
 
Esta fecha está relacionada con el sistema operativo UNIX que empezó a hacerse visible a partir del año 1970
{{MRM_Web|Title = Un podo de historia desde wikipedia|
+
{{MRM_Web|Title = Un poco de historia desde wikipedia|
 
  https://es.wikipedia.org/wiki/Berkeley_Software_Distribution
 
  https://es.wikipedia.org/wiki/Berkeley_Software_Distribution
 
  https://es.wikipedia.org/wiki/Unix
 
  https://es.wikipedia.org/wiki/Unix
Línea 633: Línea 211:
 
}}
 
}}
 
<br />
 
<br />
 +
 
====date()====
 
====date()====
  
Línea 645: Línea 224:
 
Es una fecha en formato timestamp o entero largo como segundos desde una fecha
 
Es una fecha en formato timestamp o entero largo como segundos desde una fecha
 
Si no se establece, se toma el instante actual, es decir el resultado de la función time()
 
Si no se establece, se toma el instante actual, es decir el resultado de la función time()
{{MRM_Activdad|Title=Ejemplo de uso de date|
+
}}
 +
{{MRM_Actividad|Title=Ejemplo de uso de date|
 
<source lang=php>
 
<source lang=php>
 
<?php
 
<?php
Línea 658: Línea 238:
  
 
}}
 
}}
 +
 
<br />
 
<br />
=====strtotime=====
+
====strtotime()====
 
  Convierte un string a fecha. https://www.php.net/manual/es/function.strtotime.php
 
  Convierte un string a fecha. https://www.php.net/manual/es/function.strtotime.php
 
*Esta función admite dos parámetros, uno de ellos es obligatoria
 
*Esta función admite dos parámetros, uno de ellos es obligatoria
Línea 666: Línea 247:
 
;parámetro 1: fecha_como_string  
 
;parámetro 1: fecha_como_string  
 
  Es una cadena que representa una fecha
 
  Es una cadena que representa una fecha
  Debemos facilitarla con el formato que entienda el sistema
+
  Debemos facilitarla con el formato que entienda el sistema  
 
  Por defecto "mes/dia/year"
 
  Por defecto "mes/dia/year"
 
;parametro 2: timestamp  
 
;parametro 2: timestamp  
Línea 672: Línea 253:
 
{{Tip|Recuerda que stamptime es un entero largo que respresenta un número de segundos desde el 1 de enero de 1970}}
 
{{Tip|Recuerda que stamptime es un entero largo que respresenta un número de segundos desde el 1 de enero de 1970}}
 
}}
 
}}
{{MRM_Activdad|Title=Ejemplo de uso de strtotime|
+
 
 +
 
 +
;Si quisiéramos cambiar el formato, podemos usar la función data_default_timezone_set("Zona_horaria")
 +
*Por ejemplo
 +
<source lang=php>
 +
<?php
 +
$dia= 27;
 +
$mes = 12;
 +
$year = 2001;
 +
 
 +
$fecha_string="$dia-$mes-$year";
 +
date_default_timezone_set('Europe/Madrid');
 +
$tiempo = strtotime($fecha_string);
 +
echo "<h1>Marca de tiempo de $fecha_string <span style='color:red'>$tiempo</h1>";
 +
</source>
 +
;El código anterior imprimirá<br />
 +
[[archivo:strtotime1.png]]
 +
<br />
 +
 
 +
{{MRM_Actividad|Title=Ejemplo de uso de strtotime|
 
<source lang=php>
 
<source lang=php>
 
<?php
 
<?php
Línea 684: Línea 284:
 
<br/>
 
<br/>
 
</source>
 
</source>
 
 
 
 
}}
 
}}
 
<br />
 
<br />
Línea 692: Línea 289:
 
====strftime()====
 
====strftime()====
 
  https://www.php.net/manual/es/function.strftime.php
 
  https://www.php.net/manual/es/function.strftime.php
Da formato a una fecha según el idioma establecido
+
*Da formato a una fecha según el idioma establecido
 +
*Para poder ver el uso de esta función , debemos establecer uno de los idiomas que tengamos instalados en el sistema.
 +
*Para realizar esta acción debemos usar la función '''''setlocale'''''
 
;setlocale()
 
;setlocale()
 
  https://www.php.net/manual/es/function.setlocale.php
 
  https://www.php.net/manual/es/function.setlocale.php
https://www.php.net/manual/es/function.setlocale.ph
+
Esta función establece un idioma para la fecha, monedas,...
Establece un idioma para la fecha, monedas,...
+
 
Para poder usar esta función debemos tener instalado en el sistema ese conjunto de caracteres de formato para la localidad deseada
 
Para poder usar esta función debemos tener instalado en el sistema ese conjunto de caracteres de formato para la localidad deseada
Para ver las localidades instaladas puedes usar el comando
+
;Para ver las localidades instaladas puedes usar el comando
 
<source lang=bash>
 
<source lang=bash>
  setlocale -a
+
  locale -a
 
</source>
 
</source>
Para instalar nuevas localidades  
+
;Para instalar nuevas localidades  
 
<source lang=bash>
 
<source lang=bash>
 
  sudo dpkg-reconfigure locales
 
  sudo dpkg-reconfigure locales
Línea 710: Línea 308:
 
#fr_FR.UTF-8 Francés
 
#fr_FR.UTF-8 Francés
 
#en_US.UTF-8 Inglés
 
#en_US.UTF-8 Inglés
 +
;Para instalar una localidad concreta
 +
<source lang=bash>
 +
sudo locale-gen "en_US.utf8"
 +
</source>
 +
Esta función retorna false o bien la localidad esablecida, si todo ha ido bien
  
convierte una marca de tiempo a string
 
 
====checkdate(mes, dia, year)====
 
====checkdate(mes, dia, year)====
 
*Esta función recibe tres enteros que representan  una fecha y retorna un booleano que idica si la fecha es o no correcta
 
*Esta función recibe tres enteros que representan  una fecha y retorna un booleano que idica si la fecha es o no correcta

Última revisión de 07:29 28 oct 2024

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)

Funciones de fechas

  • En php hay muchas fucniones para gestionar fechas, siendo esta una tarea frecuente el las aplicaciones web.


Icon inter.gif
Referencias de funciones de fechas en php
https://www.php.net/manual/es/ref.datetime.php


  • Vamos a estudiar 5 funciones siendo dos de ellas muy utilizadas



  • En php se trabaja mucho con las fechas. Para tal cometido existe una clase llamada DateTime y DateTimeInterface (https://www.php.net/manual/es/class.datetime.php), pero muchas de sus acciones se pueden hacer de forma imperativa con funciones que vamos a ver.

time()

Obtiene una marca de tiempo 
https://www.php.net/manual/es/function.time.php
  • Esta es una función muy importante en php que conviene entender bien.
  • Me retorna el número de segundos transcurridos desde el 1 de Enero de 1970 00:00:00 GMT.

Esta fecha está relacionada con el sistema operativo UNIX que empezó a hacerse visible a partir del año 1970




  • La función time retorna un entero largo numérico


Icon activity.jpg
usar time()
  • Prueba a visualizar el retorno de la función time()
  • Mira lo que ocurre si recargas la página en ejecución, como se van actualizando los segundos



Icon qmark.gif
Pregunta
Entiendes por qué camba el valor






date()

  • La función convierte un timestamp en una fecha como cadena de caracteres con el formato que le especifiquemos
  • Para ver los metaracteres que representan el formato puedes ver la referencia web de la función

Esta función admite dos parámetros, uno de ellos es obligatoria


Icon activity.jpg
funcion date()
data("formato_fecha", "timestamp") 
parámetro 1
formato_fecha

Es un string formado por metacaracteres y caracteres literales que establece el formato en el cual queremos ver la fecha (d/m/y H:i:s), por ejemplo, donde d representa el número de día, m del mes ... y los caracteres / y : apareceran literales en la cadena

parametro 2
timestamp

Es una fecha en formato timestamp o entero largo como segundos desde una fecha Si no se establece, se toma el instante actual, es decir el resultado de la función time()





Icon activity.jpg
Ejemplo de uso de date
<?php
 
$fecha_actual =date("d/m/Y H:i:s");
echo "<h1>La fecha actual es $fecha_actual</h1>";
 
$fecha_futura =date("d/m/Y H:i:s", time()+24*60*60);
echo "<h1>La fecha de mañana será  $fecha_futura</h1>";





strtotime()

Convierte un string a fecha. https://www.php.net/manual/es/function.strtotime.php
  • Esta función admite dos parámetros, uno de ellos es obligatoria


Icon activity.jpg
funcion strtotime
strtotime("fecha_como_string", "timestamp") 
parámetro 1
fecha_como_string
Es una cadena que representa una fecha
Debemos facilitarla con el formato que entienda el sistema 
Por defecto "mes/dia/year"
parametro 2
timestamp
Es una fecha en formato timestamp o entero largo como segundos desde una fecha
Icon present.gif
Tip: Recuerda que stamptime es un entero largo que respresenta un número de segundos desde el 1 de enero de 1970





Si quisiéramos cambiar el formato, podemos usar la función data_default_timezone_set("Zona_horaria")
  • Por ejemplo
<?php
$dia= 27;
$mes = 12;
$year = 2001;
 
$fecha_string="$dia-$mes-$year";
date_default_timezone_set('Europe/Madrid');
$tiempo = strtotime($fecha_string);
echo "<h1>Marca de tiempo de $fecha_string <span style='color:red'>$tiempo</h1>";
El código anterior imprimirá

Strtotime1.png



Icon activity.jpg
Ejemplo de uso de strtotime
<?php
$dia =27;
$mes=11;
$year=2001;
 
$fecha ="$mes/$dia/$year";
$time = strtotime($fecha);
echo "<h2>Valor de $fecha es $time</h2>h2>";
<br/>




strftime()

https://www.php.net/manual/es/function.strftime.php
  • Da formato a una fecha según el idioma establecido
  • Para poder ver el uso de esta función , debemos establecer uno de los idiomas que tengamos instalados en el sistema.
  • Para realizar esta acción debemos usar la función setlocale
setlocale()
https://www.php.net/manual/es/function.setlocale.php

Esta función establece un idioma para la fecha, monedas,... Para poder usar esta función debemos tener instalado en el sistema ese conjunto de caracteres de formato para la localidad deseada

Para ver las localidades instaladas puedes usar el comando
 locale -a
Para instalar nuevas localidades
 sudo dpkg-reconfigure locales
  • Saldrá un menú y seleccionaremos las localidades. Para los ejercicios debes tener instaladso
  1. es_ES.UTF-8 Español
  2. fr_FR.UTF-8 Francés
  3. en_US.UTF-8 Inglés
Para instalar una localidad concreta
 sudo locale-gen "en_US.utf8"

Esta función retorna false o bien la localidad esablecida, si todo ha ido bien

checkdate(mes, dia, year)

  • Esta función recibe tres enteros que representan una fecha y retorna un booleano que idica si la fecha es o no correcta