---
# System prepended metadata

title: DSW (UT2 - Práctico)

---

# DSW (UT2 - Práctico)

## Funciones
PHP tiene una variedad de funciones predefinidas (built-in functions) que podemos utilizar.

## Variables

### Variables Globales
Son aquellas variables que llevan la palabra reservada **global**, nos permiten acceder a ellas en cualquier parte de nuestro código PHP, aunque esten declaradas dentro de una función.
```php=
<?php

function concatFunction($times,$fillcharacter){
    global $text;
    for ($i=1;$i<=$times;$i++){
        $text.=$fillcharacter;
    }
}

$text = "Hello";
concatFunction(12,"d");
echo $text,"<br>"; // Hellodddddddddddd
concatFunction(9,"+-"); // Hellodddddddddddd+-+-+-+-+-+-+-+-+-
echo $text,"<br>";
```

### Variables Estáticas
Se trata de variables locales a la función (solo se podrán usar dentro de la función) pero que son capaces de recodar su valor entre cada llamada a la función. Para ello utilizamos la palabra reservada **static**.

```php=
<?php
function staticFunction(){
    static $count = 0;
    $count ++;
    
    echo "<p>El contador vale $count</p>"
}

for ($i = 0; $i < 3; $i++){
    staticFunction(); // "<p>El contador vale (1,2,3)</p>"
}
```

## Inclusión de Librerias o otro código PHP
Son archivos php que se incluyen en otros archivos php.
- Básicamente es código que se utiliza en otras páginas.
- Cuando se quiere realizar modificaciones, se realizan en ese único archivo.
- Se utiliza para ello: **include**, **require**, **include_once**, **require_once**.

La **principal diferencia** entre **include y require**, es que include si te da un fallo de importación no detiene el programa, solo te enseña un warning, mientras require detiene por completo la ejecución.

La diferencia al usar include_once o require_once, de sus otras variantes, reside en que la inclusión de dichos ficheros sólo se produce una vez por fichero php, en caso contrario nos dará un fallo.

## Arrays
[Funciones Arrays](https://hackmd.io/@bd1-NGPOSje0xW9PiI2fSQ/BJxJCF5Vj)

## PHP con HTML
[PHP con HTML](https://hackmd.io/@bd1-NGPOSje0xW9PiI2fSQ/HJ3KyKR4j)

## Cadenas
[Strings en PHP](https://hackmd.io/@bd1-NGPOSje0xW9PiI2fSQ/ryZ8ZKkLj)

## Fechas 
[Fechas](https://hackmd.io/@bd1-NGPOSje0xW9PiI2fSQ/H1jzSylIi)

## Variables SuperGlobales
[Variables SuperGlobales](https://hackmd.io/@6NpjxgwhTmGajkoVrRGALg/rJUETylUj/edit)

## Subir Ficheros
[Subir Ficheros](https://hackmd.io/@6NpjxgwhTmGajkoVrRGALg/Hy1a0ylUo/edit)
