PHP Constantes e variables. Ámbito.

De MediaWiki
Ir a la navegación Ir a la búsqueda

Constantes

  • As constantes son valores que normalmente se definen ao comezo do código e cuxo valor non varía ao longo do programa.
  • Soen identificar por medio de letras maiúsculas.
  • Os nomes das constantes poden empezar cunha letra ou guión baixo pero non poden empezar cun número.
  • Distingue maiúsculas de minúsculas no seu nome.
 1 <?php   
 2 
 3     define('MEUNOME','Angel Fernández');
 4     echo "<p>Aquí poño o menu " . MEUNOME . "</p>";
 5    
 6 ?>        
 7         <p> Outro párrafo....</p>
 8 <?php
 9     printf("Ola. Sigo sendo %s. Poido seguir referenciando a constante ao longo de toda a páxina.",MEUNOME);
10 ?>


  • Nunha constante podemos definir parámetros que despois sexan substituídos polos seus valores coas funcións printf e sprintf:
1 <?php   
2 
3     define('CADEA_PRESENTACION','Ola usuario %s');
4 
5     printf(CADEA_PRESENTACION,'Angel');
6 ?>

Variables

  • NOTA: Esta sección está asociada á realización do EXERCICIO 2.


  • A diferenza das constantes, as variables poden cambiar o seu valor ao longo do programa.
  • Non é necesario definilas nin declaralas.
  • Distinguen maiúsculas de minúsculas no seu nome. '$var' é unha variable e '$Var' é outra variable diferente.
  • A primeira letra do nome dunha variable debe ser un guión baixa ou unha letra. Non pode ser un número.
  • Identifícanse por medio do símbolo $.

Nota: A pesares de que non é obrigatorio declaralas, eu aconsello establecer un valor ao comenzo da páxina e comentar o seu propósito, xa que pode suceder que utilicemos unha variable e despois cambiemos algunha letra da mesma, pasando a manexar outra variable diferente. Desta forma podemos ter una referencia ao nome da variable.

Exemplo de código:
1 <?php   
2     $varCadea="Isto é un variable de cadea";
3     $varNumero=50;
4 
5     echo $varCadea . "<br />";
6     echo $varNumero . "<br />";
7 
8 ?>
  • PHP é unha linguaxe debilmente tipada. Quero isto dicir que as variables non se definen de ningún tipo, se non que o tipo vai depender do contido da variable.
Así, por exemplo, vou asinar a mesma variable diferentes tipos de datos e funcionará igualmente.
 1 <?php   
 2 
 3     $varTipos=5;
 4     echo $varTipos . "<br />";
 5     $varTipos='Cadea';
 6     echo $varTipos . "<br />";
 7     $varTipos=3.15454;
 8     echo $varTipos . "<br />";
 9     $varTipos=true;
10     echo $varTipos . "<br />";
11 ?>


  • Dependendo do contido que teñan, as variables poden ser dun destes tipos escalares:
  • integer: Os integers, ou enteiros, poden ter distintos valores numéricos enteiros que se expresan con diferentes notacións.
  • $variable = 18; // Número entero positivo
  • $variable = -18; // Número entero negativo
  • $variable = 0x12; // Notación hexadecimal, en principio no la utilizaremos
  • float ou double: Este tipo de datos son os números de punto flotante aos que normalmente chamamos números decimais, por exemplo, 9.876. Ambos teñen moita precisión, pero double é o máis preciso (con máis decimais). A sintaxe para utilizalos é bastante simple:
  • $variable = 9.876;
  • string: O tipo de datos string, tamén coñecido como cadea de caracteres, exprésase coa seguinte sintaxe:
  • $variable = "Isto é unha cadea";
  • boolean: Trátase dun tipo lóxico. Os seus posibles valores son true (verdadeiro) ou false (falso).
  • $variable = true;
  • $variable = false;


En programación normalmente se identifica ao valor false como 0 (cero) e ao true coma 1 (un).
En PHP cando utilizamos expresións que van ser avaliadas como booleanas, faise unha conversión no que:
  • Calquera destes valores é considerado como false: 0 (cero) , 0.0 (cero con decimais a cero), (cadea baleira), '0' (cadea cun valor cero), NULL (variable sen valor asinado)
  • Calquera outro valor diferente dos anteriores é considerado verdadeiro (true)
Máis información neste enlace.


Existen máis tipos como podemos ver no seguinte enlace: http://php.net/manual/es/language.types.intro.php


Dando formato a unha variable utilizando a función printf e sprintf

  • Como vimos anteriormente no uso da función printf/sprintf, podemos especificar en que formato se vai visualizar unha variable.
Por exemplo:
$var=5;
printf("A variable vai visualizarse como unha cadea: %s",$var);

Dependendo do carácter empregado despois do '%', temos:

  • b - o argumento é tratado coma un valor de tipo integer e presentado coma un número binario.
  • c - o argumento é tratado coma un valor de tipo integer e presentado coma o carácter con ese valor ASCII.
  • d - o argumento é tratado coma un valor de tipo integer e presentado coma un número decimal (con signo).
  • e - o argumento é tratado con notación científica (e.x. 1.2e+2). O especificador de precisión indica o número de díxitos despois del punto decimal a partires de PHP 5.2.1. En versións anteriores, se tomou coma el número de díxitos significativos (menos un).
  • E - como %e pero utiliza a letra maiúscula (e.g. 1.2E+2).
  • f - o argumento é tratado coma un valor de tipo float e presentado coma un número de punto flotante (considerando a configuración rexional).
  • F - o argumento é tratado coma un valor de tipo float e presentado coma un número de punto flotante (non considerando a configuración rexional). Dispoñible desde PHP 4.3.10 e PHP 5.0.3.
  • g - o mesmo que %e e %f.
  • G - o mesmo que %E e %f.
  • o - o argumento é tratado coma un valor de tipo integer e presentado como un número octal.
  • s - o argumento é tratado e presentado coma un string.
  • u - o argumento é tratado coma un valor de tipo integer e presentado coma un número decimal sen signo.
  • x - o argumento é tratado coma un valor de tipo integer e presentado coma un número hexadecimal (cas letras en minúsculas).
  • X - o argumento é tratado coma un valor de tipo integer e presentado coma un número hexadecimal (coas letras en maiúsculas).


Nota: Para formatear un número pódese facer uso da función number_format.


Uso de variables dentro da función echo

  • Anteriormente contamos que había unha diferenza entre utilizar comillas dobres ou simples na función echo.
Vexamos agora esta diferenza no uso de variables.
  • Se usamos unha variable dentro da función echo:
  • Con comillas dobres, a variable será substituída polo seu valor. Se expande.
  • Con comillas simples, xerará a cadea $variable.
Por exemplo:
1 <?php   
2     $var = "Isto é unha variable de cadea";
3     
4     echo "A variable var con \" vale: $var<br/>";
5     echo 'A variable var con \' vale: $var<br />';
6 ?>
Dará como resultado:
1 A variable var con " vale: Isto é unha variable de cadea
2 A variable var con ' vale: $var

Funcións

  • PHP ten unha multitude de funcións para facernos a vida máis sinxela á hora de programar.
  • Aconsello antes de 'programar' algo cos valores das variables (tipo dividir unha frase en palabras, quitar espazo en branco, redondeo, número máis alto de varios,...) consultar as seguintes funcións:
  • Vexamos algúns exemplos aplicados a cada tipo.


Funcións de Cadea

1 <?php        
2 $cadea = "un,dous,tres,catro";
3 $result = explode(',',$cadea);
4 print($result[0]);  //Un
5 print($result[1]);  // Dous
6 print($result[2]);  // Tres
7 ?>


1 <?php        
2 $cadea = "Cambia gato por can";
3 print(str_replace("gato","can",$cadea));  // => RESULTADO: Camba can por can
4 ?>


  • Outras funcións interesantes de practicar:
  • strlen
  • strpos / strrpos
  • substr
  • trim
  • strstr



Funcións Matemáticas

1 <?php        
2 $num = -123;
3 echo abs($num); // 123
4 $num = 2.14;
5 printf("<br>Redondeo cara arriba: %d <br />Redondeo cara abaixo:%d",ceil($num),floor($num));    // Arriba => 3, Abaixo => 2
6 ?>
1 <?php        
2 $pi = 3.14159;
3 echo round($pi); // Resultado => 3
4 $nota = 3.75;
5 echo round($nota); // Resultado => 4
6 ?>


Funcións aplicadas a datas e horas

Esta clase colle a data actual do servidor (se non enviamos nada no segundo parámetro) e dalle un formato en función dunha serie de códigos que aparecen no enlace da función, devolvendo unha cadea có formato indicado.
Así, se quero amosar o día en format dd-mm-yyyy tería que empregar os códigos: d => día, m => mes, Y => ano con catro díxitos
1 <?php
2 
3 $data = date('d-m-Y');
4 printf($data);
5 
6 ?>
Por exemplo, imaxina que queremos amosar o tempo desta forma: 'Hoxe, 20 de Setembro do 2023 e son as 18:32 horas' tería que sustituir os datos polos códigos correctos:
1 <?php
2 
3 $data = date('d \d\e F \d\e Y \e \s\o\n \a\s H:i \h\o\r\a\s');
4 printf("Hoxe, $data");
5 
6 
7 ?>
Como vedes é necesario empregar o caracter \ para escapar o texto empregando a función date e que non interprete as letras como códigos.
Tamén podedes comprobar como o mes está en inglés.
Se queremos cambiar o idioma temos que empregar a función setLocale.
No caso do galego teríamos que poñer ao principio da páxina: setlocale(LC_TIME, 'gl_ES.utf8');
Pero iso soamente non vale xa que date non le o locale que teñades establecido. É necesario empregar a función strftime no seu lugar. Dita función ten unha lista de códigos ao igual que date, pero antepoñéndo % ao código.
O exemplo anterior quedaría así:
1 <?php
2 date_default_timezone_set('Europe/Madrid');
3 setlocale(LC_TIME, 'gl_ES.utf8'); 
4 $hoy = strftime('%d de %B do %Y e son as %H:%M horas');  // Sen o segundo parámetro colle a data actual. Se queremos enviarlle unha data, ten que ser un timestamp, que veremos despois
5 echo "Hoxe, " . $hoy;
6 ?>


1 date_default_timezone_set('Europe/Madrid');



Para crear un Datetime, temos varias formas. Unha delas:
 1 <?php
 2 
 3 /*  Outra forma de obter a hora empregando o estilo por procedementos
 4 $dataConHora=date_create_from_format('d-m-Y', date('d-m-Y'));
 5 echo date_format($dataConHora,'d-m-Y H:i:s');
 6 */
 7 $dataConHora = new DateTime();  // Data actual empregando clases (orientado a obxectos)
 8 echo $dataConHora->format('d-m-Y H:i:s');
 9 
10 
11 $dataConHoraAPartiresCadea = new DateTime('2022-04-25');  // Data a partires dunha cadea
12 echo $dataConHoraAPartiresCadea->format('d-m-Y H:i:s');
13 
14 ?>


Coa función date_format podes amosar un DateTime có formato que quieras.



  • Función time: Obtén a data-hora pero en segundos, a partires dende unha data concreta (1-Xaneiro-1970). Coñécese como timestamp.
Para convertir un String a un timestamp temos que empregar a función strtotime.
Isto pode ser interesante xa que a función strftime que vimos antes,espera recibir como segundo parámetro un timestamp.
Se temos a data en formato DateTime (data e hora) e queremos empregar a función strftime para amosar a data aplicando o setLocale, teremos que convertir o DateTime a String e despois aplicar a función strtotime. Para obter o String dun DateTime temos a función date_format vista anteriormente.

Comprobación de definición e asignación

  • En PHP temos dúas funcións para saber se unha variable está definida / ten valor asinado.


  • Función isset($var): Devolve TRUE se $var existe e ten un valor distinto de NULL; FALSE en caso contrario.
  • Función empty($var): Devolve FALSE se $var existe e ten un valor no baleiro, distinto de cero. Doutro modo devolve TRUE.
As seguintes expresións son consideradas como baleiras:
  • "" (una cadena vacía)
  • 0 (0 como un integer)
  • 0.0 (0 como un float)
  • "0" (0 como un string)
  • NULL
  • FALSE
  • array() (un array balairo)
  • $var; (unha variable declarada, pero sen un valor)



  • Vexamos un exemplo:
 1 <?php   
 2 
 3     $var1 = 100; 
 4 
 5     printf("Valor de var1: %s<br/>",$var1);
 6     printf("isset: %b<br/>",isset($var1));
 7     printf("empty: %b<br/>",empty($var1));
 8     
 9     $var1 = null; 
10 
11     printf("Valor de var1: null<br/>");
12     printf("isset: %b<br/>",isset($var1));
13     printf("empty: %b<br/>",empty($var1));
14     
15     $var1 = ''; 
16 
17     printf("Valor de var1: %s<br/>","''");
18     printf("isset: %b<br/>",isset($var1));
19     printf("empty: %b<br/>",empty($var1));
20     
21 
22         // Comprobamos agora o que vale unha variable non definida....
23     printf("Valor de var2: %s<br/>","sen asinar");
24     printf("isset: %b<br/>",isset($var2));
25     printf("empty: %b<br/>",empty($var2));
26    
27 ?>


  • Da como resultado:
Valor de var1: 100
isset: 1
empty: 0
Valor de var1: null
isset: 0
empty: 1
Valor de var1: ''
isset: 1
empty: 1
Valor de var2: sen asinar
isset: 0
empty: 1
  • Nota:
  • Estas funcións serán utilizadas para comprobar se os datos dun formulario están cubertos ou non.
  • Fixarse como amosamos o resultado como un booleano utilizando o parámetro %b da función printf. Isto é necesario xa que PHP amosa o valor true coma un 1 e o valor false como comillas.




  • Se queremos destruir a variable ou variables podemos empregar a función unset da forma:
1 <?php   
2 
3 $variable = 10;
4 echo isset($variable)==1 ? 'TRUE' : 'FALSE';  // DEVOLVE A CADEA TRUE
5 unset($variable);
6 echo '<br />';
7 echo isset($variable)==1 ? 'TRUE' : 'FALSE';  // DEVOLVE A CADEA FALSE
8 
9 ?>



Comprobación do tipo de dato

  • PHP é unha linguaxe debilmente tipada. Quere isto dicir que o tipo dunha variable non se decide na definición da mesma, se non que vai depender do valor gardado.

Así:

$var = 5; => Será de tipo integer.
$var= 'ola'; => Será de tipo string.
  • PHP permite asinar á mesma variable diferentes tipos durante a execución do código PHP.
  • Para comprobar o tipo dunha variable teremos que facer uso dalgunha das seguintes funcións:
  • is_array: Comproba que a variable sexa un array.
  • is_bool: Comproba que a variable sexa de tipo booleano.
  • is_float, is_double, is_real: Comproban que a variable sexa un número real.
  • is_int, is_integer, is_long: Comproban que a variable sexa un número enteiro.
  • is_numeric: Comproba que a variable sexa un número ou unha cadea numérica. Usado para validar campos dun formulario xa que os vai a enviar como cadeas.
  • is_scalar: Comproba que a variable sexa un escalar (enteiro, real, booleano ou cadea de texto).
  • is_string: Comproba que a variable sexa unha cadea de texto.

Vexamos un exemplo:

<?php

$idade='Angel';

if (!is_numeric($idade)) die('A idade ten que ser un número...');

?>


  • Unha función complementaria ás anteriores é: getType. Devolve o tipo de datos dunha variable.
Vexamos un exemplo:
<?php
$nome=54;

if (getType($nome)!='string') echo('O nome ten que ser unha cadea...');

?>



Asignar o tipo a unha variable

Vexamos un exemplo:

<?php

    $varA = $varB = "3.14159"; // asignamos as dúas variables unha cadea de texto
    settype($varA, "float"); // Agora é de tipo float
    print "\$varA vale $varA e ten tipo ".gettype($varA);
    print "<br />";
    print "\$varB vale $varB e ten de tipo ".gettype($varB);

?>

Ámbito das variables


  • O ámbito é un concepto que fai referencia á 'visibilidade' dunha variable dentro dun programa.
  • Normalmente, en outras linguaxes de programación, unha variable definida a nivel de programa é visible para todas as funcións dentro dese programa. En PHP non pasa así.
  • Aínda que non vimos como crear funcións en PHP as introduciremos neste punto para explicar os ámbitos.
Vexamos un exemplo:
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 2     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 3 <html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es">
 4     <head>
 5         <meta charset="utf-8" />
 6         <title>Exemplos de códigos php</title>
 7     </head>
 8 <?php
 9     function modificarVar(){
10         
11         $var=10;
12         printf('$var--->%d despois de ser modificada. Impreso dentro da función.<br/>',$var);   // PREGUNTA: Por que printf leva comillas simples nesta orde ?
13         
14     }
15 ?>    
16     <body>
17 <?php   
18 
19     $var = 100; // Isto é unha variable de cadea
20 
21     modificarVar();
22     printf('$var--->%d despois de ser modificada.Impreso fora da función.<br/>',$var);
23     
24 ?>
25     </body>    
26 </html>


O resultado será isto:
1 $var--->10 despois de ser modificada. Impreso dentro da función.
2 $var--->100 despois de ser modificada.Impreso fora da función.


Como vemos, despois de chamar á función, imprimimos o valor da variable $var, e non imprime o valor modificados, se non o valor orixinal.


  • En PHP para poder modificar o valor dunha variable a nivel GLOBAL temos dúas formas:
  • Definindo novamente a variable dentro da función antepoñendo o prefixo global.
  • Acceder a dita variable có array $GLOBALS[nome_variable]. O nome da variable non leva '$' dentro do array.
Vexamos o mesmo exemplo aplicando as dúas solucións:
 1 <?php
 2     function modificarVar(){
 3         
 4         global $var;
 5         
 6         $var=10;
 7         printf('$var--->%d despois de ser modificada. Impreso dentro da función.<br/>',$var);  
 8         
 9     }
10 ?>


1 <?php
2     function modificarVar(){
3         
4         $GLOBALS['var']=10;
5         printf('$var--->%d despois de ser modificada. Impreso dentro da función.<br/>',$GLOBALS['var']);   
6         
7     }
8 ?>
Nota: Fixarse que a variable $var dentro da función non existe. Se intentamos imprimila non terá valor asinado. Poderíamos traballar cunha variable $var dentro da función, pero sería diferente á $GLOBALS['var'].


Nos dous casos anteriores o resultado será isto:
1 $var--->10 despois de ser modificada. Impreso dentro da función.
2 $var--->10 despois de ser modificada.Impreso fora da función.



Variables superglobais

  • Php dispón dunha serie de variables que son globais e se pode acceder a elas dende calquera sitio sen necesidade de facer nada como vimos antes coas variables globais.
Ditas variables están definidas en ARRAYS de nomes variados.
A lista de arrays globais son coas propiedades mais relevantes:
  • $_SERVER
$_SERVER['DOCUMENT_ROOT']: directorio raíz baixo o que se executa o guión actual.
$_SERVER['REMOTE_ADDR']: Dirección ip da máquina cliente que realiza a petición PHP.
  • $_GET: Obtemos os valores das variables enviadas polo método get dun formulario.
  • $_POST: Obtemos os valores das variables enviadas polo método post dun formulario.
  • $_COOKIE: As cookies gardadas no computador do cliente.
  • $_FILES: Obtemos os arquivos que foron subidos por un formulario do cliente.


Se queres saber os nomes das variables de calquera dos arrays e os seus valores podedes poñer:
1     <h1>Variables del array $_SERVER</h1>
2     <ul>
3         <?php
4         foreach ($_SERVER as $key => $value) {   // Cambiade $_SERVER polo array global dos de arriba
5             echo "<li><strong>$key:</strong> $value</li>";
6         }
7         ?>
8     </ul>




Exercicios propostos

  • Exercicio 1:
Define as variables necesarias para gardar esta información:
• nome: O teu nome
• apelidos: Os teus apelidos
• nota1, nota2, nota3: As notas das 3 avaliacións
• telefono: Un teléfono de exemplo
• email: Dirección de correo.
Amosa en forma de lista ordenada e centrada a información de todas as variables, tendo en conta que o nome e apelidos van nunha única liña có formato: Apelidos, nome e as notas van nunha única liña có formato: 1ª Avaliación: XX – 2ª Avaliación: YY – 3ª Avaliación
Emprega todas as formas de amosar información na páxina cliente: echo, printf e sprintf



  • Exercicio 2:
Amosa empregando a función printf, cando sexa necesario, unha lista ordenada na que se amosen 3 días de semana a partires de cando se execute o script php. É dicir, se hoxe é Mércores, a táboa debe amosar en cada columna: Mércores, Xoves, Venres. Débese amosar o nome dos meses en castelán e teñen que estar suliñados.
Podes practicar empregando echo, printf ou sprintf.




  • Exercicio 3:
Xera o código PHP no que se empreguen 2 variables, unha ten a cadea "Isto é un exemplo de cadea" e amose empregando unha táboa os seguintes datos: Número de caracteres da cadea, posición onde se atopa a primeira letra 'e', posición onde se atopa a última letra e, a cadea reeplanzando 'exemplo' por 'texto', que devolva a cadea true se a palabra exemplo se atopa na cadea, que amose a 4 palabra empregando a función explode, que amose ata a palabra 'de' empregando a función substr
Podes practicar empregando echo, printf ou sprintf.




  • Exercicio 4:
Dados as notas de tres traballos, fai a media ponderada de cada un deles sabendo que o primeiro traballo supón o 15% da nota, o segundo o 30% e o terceiro o 55%. Rendondea o número e amosa a media. Se a media é superior a 5 debe amosar a maiores do número a palabra APROBADO suliñada e en verde e se está suspenso, a palabra SUSPENSO suliñada e en vermello. Amosa tamén as notas de cada traballo.
Podes practicar empregando echo, printf ou sprintf.
Nota: Consulta as funcións matemáticas de php.




Solucións Exercicios propostos

  • Solución Exercicio 1:
  • Con echo:
 1 <?php
 2 $nome = "O teu nome";
 3 $apelidos = "Os teus apelidos";
 4 $nota1 = 8.5;
 5 $nota2 = 9.2;
 6 $nota3 = 7.8;
 7 $telefono = "987-654-321";
 8 $email = "correo@example.com";
 9 
10 echo "<ol style='text-align: center;'>";
11 echo "<li>Nome completo: $apelidos, $nome</li>";
12 echo "<li>Notas: 1ª Avaliación: $nota1 – 2ª Avaliación: $nota2 – 3ª Avaliación: $nota3</li>";
13 echo "<li>Teléfono: $telefono</li>";
14 echo "<li>Email: $email</li>";
15 
16 echo "</ol>";
17 ?>


  • Con printf:
 1 <?php
 2 $nome = "O teu nome";
 3 $apelidos = "Os teus apelidos";
 4 $nota1 = 8.5;
 5 $nota2 = 9.2;
 6 $nota3 = 7.8;
 7 $telefono = "987-654-321";
 8 $email = "correo@example.com";
 9 
10 printf("<ol style='text-align: center;'>");
11 printf("<li>Nome completo: %s, %s</li>", $apelidos, $nome);
12 printf("<li>Notas: 1ª Avaliación: %.2f – 2ª Avaliación: %.2f – 3ª Avaliación: %.2f</li>", $nota1, $nota2, $nota3);
13 printf("<li>Teléfono: %s</li>", $telefono);
14 printf("<li>Email: %s</li>", $email);
15 
16 printf("</ol>");
17 ?>


  • Con sprintf:
 1 <?php
 2 $nome = "O teu nome";
 3 $apelidos = "Os teus apelidos";
 4 $nota1 = 8.5;
 5 $nota2 = 9.2;
 6 $nota3 = 7.8;
 7 $telefono = "987-654-321";
 8 $email = "correo@example.com";
 9 
10 $html = sprintf("<ol style='text-align: center;'>");
11 $html .= sprintf("<li>Nome completo: %s, %s</li>", $apelidos, $nome);
12 $html .= sprintf("<li>Notas: 1ª Avaliación: %.2f – 2ª Avaliación: %.2f – 3ª Avaliación: %.2f</li>", $nota1, $nota2, $nota3);
13 $html .= sprintf("<li>Teléfono: %s</li>", $telefono);
14 $html .= sprintf("<li>Email: %s</li>", $email);
15 
16 $html .= sprintf("</ol>");
17 
18 echo $html;
19 ?>



  • Solución Exercicio 2:
 1 <?php
 2 setlocale(LC_TIME, 'es_ES.utf8'); // Configura la localización en castellano
 3 
 4 $hoy = strftime('%A'); // Obtiene el nombre del día actual en castellano
 5 $dia_siguiente1 = new DateTime();
 6 $dia_siguiente2 = new DateTime();
 7 
 8 date_add($dia_siguiente1, new DateInterval('P1D')); // Agrega 1 día
 9 date_add($dia_siguiente2, new DateInterval('P2D')); // Agrega 2 día
10 
11 
12 $cadeaDia1 = date_format($dia_siguiente1,'d-M-Y');
13 $cadeaDia2 = date_format($dia_siguiente2,'d-M-Y');
14 
15 
16 printf("<h1>Próximos 3 días de la semana:</h1>");
17 printf("<ol>");
18 printf("<li><em>$hoy</em></li>");
19 printf("<li><em>%s</em></li>",strftime('%A',strtotime($cadeaDia1)));
20 printf("<li><em>%s</em></li>",strftime('%A',strtotime($cadeaDia2)));
21 echo "</ol>";
22 ?>



  • Solución Exercicio 3:
 1 <?php
 2 // Definir a cadea
 3 $cadea = "Isto é un exemplo de cadea";
 4 printf("<h1>$cadea</h1>");
 5 // Tarefa 1: Número de caracteres da cadea
 6 $número_de_caracteres = strlen($cadea);
 7 
 8 // Tarefa 2: Posición da primeira letra 'e'
 9 $posición_da_primeira_e = strpos($cadea, 'e');
10 
11 // Tarefa 3: Posición da última letra 'e'
12 $posición_da_última_e = strrpos($cadea, 'e');
13 
14 // Tarefa 4: Cadea reemplazando 'exemplo' por 'texto'
15 $cadea_reemplazada = str_replace('exemplo', 'texto', $cadea);
16 
17 // Tarefa 5: Comprobar se a palabra 'exemplo' está na cadea
18 $contén_exemplo = strpos($cadea, 'exemplo') !== false ? 'true' : 'false';
19 
20 // Tarefa 6: Amosar a cuarta palabra usando explode
21 $palabras = explode(' ', $cadea);
22 $cuarta_palabra = isset($palabras[3]) ? $palabras[3] : '';  // Se non houbera 4 palabras teríamos un erro, por iso a comprobación con isset
23 
24 // Tarefa 7: Amosar ata a palabra 'de' usando substr
25 $posición_de = strpos($cadea, 'de');
26 $subcadea_ata_de = $posición_de !== false ? substr($cadea, 0, $posición_de) : '';
27 
28 // Amosar os resultados nunha táboa
29 echo "<table border='1'>";
30 echo "<tr><td>Número de caracteres:</td><td>$número_de_caracteres</td></tr>";
31 echo "<tr><td>Posición primeira letra 'e':</td><td>$posición_da_primeira_e</td></tr>";
32 echo "<tr><td>Posición última letra 'e':</td><td>$posición_da_última_e</td></tr>";
33 echo "<tr><td>Cadea reemplazada:</td><td>$cadea_reemplazada</td></tr>";
34 echo "<tr><td>A palabra 'exemplo' está:</td><td>$contén_exemplo</td></tr>";
35 echo "<tr><td>Cuarta palabra:</td><td>$cuarta_palabra</td></tr>";
36 echo "<tr><td>Ata a palabra 'de':</td><td>$subcadea_ata_de</td></tr>";
37 echo "</table>";
38 ?>



  • Solución Exercicio 4:
 1 <?php
 2 // Definir as notas dos tres traballos
 3 $nota1 = 7.5;
 4 $nota2 = 6.8;
 5 $nota3 = 8.2;
 6 
 7 // Calcular a media ponderada
 8 $media_ponderada = round(($nota1 * 0.15 + $nota2 * 0.30 + $nota3 * 0.55), 1);
 9 
10 // Comprobar se está aprobado ou suspenso
11 if ($media_ponderada >= 5) {
12     $resultado = "<span style='color: green;'><em>APROBADO</em></span>";
13 } else {
14     $resultado = "<span style='color: red;'><em>SUSPENSO</em></span>";
15 }
16 
17 // Crear unha táboa para amosar as notas e os resultados
18 echo "<table border='1'>";
19 echo "<tr><td>Traballo 1:</td><td>$nota1</td></tr>";
20 echo "<tr><td>Traballo 2:</td><td>$nota2</td></tr>";
21 echo "<tr><td>Traballo 3:</td><td>$nota3</td></tr>";
22 echo "<tr><td>Media Ponderada:</td><td>$media_ponderada</td></tr>";
23 echo "<tr><td>Resultado:</td><td>$resultado</td></tr>";
24 echo "</table>";
25 ?>



-- Ángel D. Fernández González -- (2016).