# 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)