Conceptos básicos de PHP (I)

Ricardo Pérez López

IES Doñana, curso 2020/2021

1 Introducción a PHP

1.1 Página web de PHP

https:://php.net

1.2 Instalación de PHP

~/.conf/scripts/php-install.php

1.3 Documentación y búsqueda de información

https://www.php.net/manual/es

2 Sintaxis básica

http://php.net/manual/es/language.basic-syntax.php

2.1 Datos e instrucciones

2.2 Sentencias y comandos

2.2.1 Comando echo

http://php.net/manual/es/function.echo.php

2.3 Expresiones, operadores y funciones

ricpelo’s note: Ejemplos: aritmética, cos(), max()

ricpelo’s note: print() no es una función. Cuidado.

3 Funcionamiento del intérprete

3.1 Ejecución

3.1.1 Por lotes

3.1.2 Interactiva

3.1.2.1 php -a

3.1.2.2 PsySH

http://psysh.org

3.2 Etiquetas <?php y ?>

https://www.php.net/manual/es/language.basic-syntax.phptags.php

3.3 Modo dual de operación

http://php.net/manual/es/language.basic-syntax.phpmode.php

4 Variables

4.1 Conceptos básicos

http://php.net/manual/es/language.variables.basics.php

4.2 Destrucción de variables

http://php.net/manual/es/function.unset.php

4.3 Operadores de asignación por valor y por referencia

http://php.net/manual/es/language.operators.assignment.php

4.4 Variables predefinidas

http://php.net/manual/es/reserved.variables.php

5 Tipos básicos de datos

5.1 Introducción

http://php.net/manual/es/language.types.intro.php

5.2 Lógicos (bool)

http://php.net/manual/es/language.types.boolean.php

5.2.1 Operadores lógicos

http://php.net/manual/es/language.operators.logical.php

5.3 Numéricos

5.3.1 Enteros (int)

http://php.net/manual/es/language.types.integer.php

5.3.2 Números en coma flotante (float)

http://php.net/manual/es/language.types.float.php

5.3.3 Operadores

5.3.3.1 Operadores aritméticos

http://php.net/manual/es/language.operators.arithmetic.php

5.3.3.2 Operadores de incremento/decremento

http://php.net/manual/es/language.operators.increment.php

5.4 Cadenas (string)

http://php.net/manual/es/language.types.string.php

5.4.1 Operadores de cadenas

http://php.net/manual/es/language.operators.string.php

5.4.1.1 Concatenación

5.4.1.2 Acceso y modificación por caracteres

http://php.net/manual/es/language.types.string.php#language.types.string.substr

5.4.1.3 Operador de incremento

http://php.net/manual/es/language.operators.increment.php

5.4.2 Funciones de manejo de cadenas

http://php.net/ref.strings

5.4.3 Extensión mbstring

http://php.net/manual/en/book.mbstring.php

5.5 Nulo (null)

http://php.net/manual/es/language.types.null.php

6 Manipulación de datos

6.1 Precedencia de operadores

http://php.net/manual/es/language.operators.precedence.php

6.2 Operadores de asignación compuesta

6.3 Comprobaciones

6.3.1 De tipos

6.3.1.1 gettype()

http://php.net/manual/en/function.gettype.php

6.3.1.2 is_*()

http://php.net/manual/es/ref.var.php

6.3.2 De valores

6.3.2.1 is_numeric()

http://php.net/manual/es/function.is-numeric.php

6.3.2.2 ctype_*()

http://php.net/manual/es/book.ctype.php

6.4 Conversiones de tipos

http://php.net/manual/es/language.types.type-juggling.php

6.4.1 Conversión explícita (casting) vs. implícita (automática)

http://php.net/manual/es/language.types.type-juggling.php#language.types.typecasting

6.4.2 Conversión a bool

http://php.net/manual/es/language.types.boolean.php#language.types.boolean.casting

6.4.3 Conversión a int

http://php.net/manual/es/language.types.integer.php#language.types.integer.casting

6.4.4 Conversión a float

http://php.net/manual/es/language.types.float.php#language.types.float.casting

6.4.5 Conversión de string a número

http://php.net/manual/es/language.types.string.php#language.types.string.conversion

6.4.6 Conversión a string

http://php.net/manual/es/language.types.string.php#language.types.string.casting

6.4.7 Funciones de obtención de valores

6.4.7.1 intval()

http://php.net/manual/es/function.intval.php

6.4.7.2 floatval()

http://php.net/manual/es/function.floatval.php

6.4.7.3 strval()

http://php.net/manual/es/function.strval.php

6.4.7.4 boolval()

http://php.net/manual/es/function.boolval.php

6.4.8 Funciones de formateado numérico

6.4.8.1 number_format()

http://php.net/manual/es/function.number-format.php

6.4.8.2 money_format()

http://php.net/manual/es/function.money-format.php

setlocale()

6.5 Comparaciones

6.5.1 Operadores de comparación

http://php.net/manual/es/language.operators.comparison.php

6.5.2 == vs. ===

6.5.3 Ternario (?:)

http://php.net/manual/es/language.operators.comparison.php#language.operators.comparison.ternary

6.5.4 Fusión de null (??)

https://wiki.php.net/rfc/isset_ternary

6.5.5 Reglas de comparación de tipos

http://php.net/manual/es/types.comparisons.php

7 Constantes

7.1 Introducción

http://php.net/manual/es/language.constants.syntax.php

7.2 define() y const

7.3 Constantes predefinidas

http://php.net/manual/es/language.constants.predefined.php

7.4 defined()

http://php.net/manual/es/function.defined.php

8 Ejercicios

8.1 Actividades

  1. Busca información sobre la función time() usando, al menos, tres formas distintas.

  2. Explica, con tus propias palabras, la diferencia entre:

    1. Un dato y una instrucción.
    2. Una expresión y una sentencia.
    3. Una sentencia y un comando.
    4. Una función y un operador.
  3. ¿Es echo una función? ¿A dónde acudes para saberlo?

  4. ¿Es lo mismo modo de ejecución que modo de operación? Explica cuáles son y en qué consisten los diferentes modos de ejecución y de operación en PHP.

  5. ¿Qué ventajas e inconvenientes tiene usar PsySH frente al intérprete integrado?

  1. ¿Qué tipos de asignación de variables existen en PHP? Explica sus diferencias y pon ejemplos de uso.

  2. ¿Qué son las variables predefinidas? Enumera las más importantes.

  3. Calcula el valor de las siguientes expresiones y razona por qué tienen ese valor:

    1. false and true or 1
    2. 1 == 1.0
    3. 1 == 0.99999999999999999
    4. floor((0.1 + 0.7) * 10)
    5. '1' == 1
    6. empty('0')
  4. ¿$a[3] equivale a mb_substr($a, 3, 1)? Razona la respuesta.

  5. Define con tus propias palabras el significado de asociatividad y de prioridad. ¿Por qué la expresión 1 == 1 == 1 es incorrecta pero 1 <= 1 == 1 es correcta (y cuál es su valor, por cierto)?

Bibliografía

// reveal.js plugins