jueves, 3 de octubre de 2013

Tipos de variables

Booleanos

Este es el tipo más simple. Un boolean expresa un valor de verdad. Puede ser TRUE or FALSE.

Sintaxis:

Para especificar un literal boolean, use alguna de las palabras clave TRUE o FALSE. Ambas son insensibles a mayúsculas y minúsculas.
<?php
$foo = True; // asigna el valor TRUE a $foo
?>

Enteros

Un entero o integer es un número del conjunto  = {..., -2, -1, 0, 1, 2, ...}.


Tabla de contenidos:

gmp_abs — Valor absoluto
gmp_add — Agrega números
gmp_and — Nivel de bit AND
gmp_clrbit — Limpia un bit
gmp_cmp — Compara los números
gmp_com — Calcula uno de los complementos
gmp_div_q — Divide los números
gmp_div_qr — Divide los números y obtiene el cociente y resto
gmp_div_r — El resto de la división de los números
gmp_div — Alias de gmp_div_q
gmp_divexact — División exacta de números
gmp_fact — Factorial
gmp_gcd — Calcula el máximo común divisor
gmp_gcdext — Calcula el máximo común divisor y multiplicadores
gmp_hamdist — Distancia Hamming
gmp_init — Crea un número GMP
gmp_intval — Convertir un número GMP a entero
gmp_invert — Inverso del modulo
gmp_jacobi — Símbolo Jacobi
gmp_legendre — Símbolo Legendre
gmp_mod — Modulo de operación
gmp_mul — Multiplicación de números
gmp_neg — Número negativo
gmp_nextprime — Encuentra el siguiente número primo
gmp_or — Nivel de bit OR
gmp_perfect_square — Comprueba el cuadrado perfecto
gmp_popcount — Cuenta la población
gmp_pow — Aumenta el número a la potencia
gmp_powm — Eleva un número a la potencia con modulo
gmp_prob_prime — Revisa si el número es "probablemente primo"
gmp_random — Numero al azar
gmp_scan0 — Escanear para 0
gmp_scan1 — Escanear para 1
gmp_setbit — Establece el bit
gmp_sign — El símbolo del número
gmp_sqrt — Calcula la raíz cuadrada
gmp_sqrtrem — Raíz cuadrada con resto
gmp_strval — Convierte un número GMP a cadena
gmp_sub — Resta los números
gmp_testbit — Prueba si un bit es establecido
gmp_xor — Nivel de bit XOR

Números de punto flotante

Los números de punto flotante (también conocidos como "flotantes", "dobles" o "números reales") pueden ser especificados usando cualquiera de las siguientes sintaxis:
<?php
$a = 1.234; 
$b = 1.2e3; 
$c = 7E-10;
?>


Tabla de contenidos:

bcadd — Añade dos números de precisión arbitrária
bccomp — Compara dos números de precisión arbitraria
bcdiv — Divide dos números de precisión arbitraria
bcmod — Obtiene el módulo de un número de precisión arbitraria
bcmul — Multiplica dos números de precisión arbitraria
bcpow — Elevar un número de precisión arbitraria a otro
bcpowmod — Eleva un número de precisión arbitraria a otro, reducido por un módulo especificado
bcscale — Establece los parametros de scale por defecto para todas las funciones matemáticas de bc
bcsqrt — Obtiene la raiz cuadrada de un número de precisión arbitraria
bcsub — Resta un número de precisión arbitraria de otro

Números de punto flotante

Los números de punto flotante (también conocidos como "flotantes", "dobles" o "números reales") pueden ser especificados usando cualquiera de las siguientes sintaxis:

<?php
$a = 1.234; 
$b = 1.2e3; 
$c = 7E-10;
?>

Cadenas

Un string es una serie de caracteres donde un caracter es lo mismo que un byte. Esto significa que PHP solo soporta el conjunto de 256 caracteres y por lo tanto no tiene soporte nativo Unicode. Ver detalles del tipo de dato string.

Sintaxis

Un string literal puede ser especificado de cuatro formas diferentes:


<?php
echo 'Esto es una cadena sencilla';

echo 'Tambien puede incluir nuevas líneas en
cadenas de esta forma ya que es
correcto hacerlo así';

// Resultado: Arnold una vez dijo: "I'll be back"
echo 'Arnold una vez dijo: "I\'ll be back"';

// Resultado: Ha borrado C:\*.*?
echo 'Ha borrado C:\\*.*?';

// Resultado: Ha borrado C:\*.*?
echo 'Ha borrado C:\*.*?';

// Resultado: Esto no se expandirá: \n una nueva línea
echo 'Esto no se expandirá: \n una nueva línea';

// Resultado: Las variables $tampoco se $expandiran
echo 'Las variables $tampoco se $expandiran';
?>


Si un string está encerrado entre comillas dobles ("), PHP interpretará más sentencias de escape como caracteres especiales:
Caracteres escapados
Sentencia
Significado
\n
avance de línea (LF o 0x0A (10) en ASCII)
\r
retorno de carro (CR o 0x0D (13) en ASCII)
\t
tabulador horizontal (HT o 0x09 (9) en ASCII)
\v
tabulador vertical (VT o 0x0B (11) en ASCII) (desde PHP 5.2.5)
\e
escape (ESC o 0x1B (27) en ASCII) (desde PHP 5.4.0)
\f
avance de página (FF o 0x0C (12) en ASCII) (desde PHP 5.2.5)
\\
barra invertida
\$
signo del dólar
\"
comillas dobles
\[0-7]{1,3}
la secuencia de caracteres que coincida con la expresión regular es un caracter en notación octal
\x[0-9A-Fa-f]{1,2}
la secuencia de caracteres que coincida con la expresión regular es un caracter en notación hexadecimal

Al igual que en la delimitación de un string mediante comillas simples, escapar cualquier otro caracter puede dar lugar a que se muestre tambien la barra invertida. Antes de PHP 5.1.1, la barra invertida en \{$var} no se mostraba.
La característica más importante de entrecomillar un string mediante comillas dobles es el hecho que los nombres de las variables son expandidas. Consulte string parsing para más detalles.


Una tercera forma de delimitar un string es mediante la sintaxis heredoc: <<<. Después de este operador, se deberá ofrecer un identificador y después una nueva línea. A continuación va el propio string, y para cerrar la notación se pone el mismo identificador.
El identificador de cierre debe empezar en la primera columna de la nueva línea. Asimismo, el identificador debe seguir las mismas reglas de nomenclatura de las etiquetas en PHP: debe contener solo caracteres alfanuméricos y guiones bajos, y debe empezar con un caracter alfabético o un guión bajo.

<?php
class foo {
    public $bar = <<<EOT
bar
    EOT;
}
?>

Nowdoc (desde PHP 5.3.0)

Nowdocs son a las cadenas con comillas simples lo mismo que Heredoc lo es a las comillas dobles. Una cadena nowdoc se especifica de forma análoga a la heredoc, pero no se realiza ningún análisis dentro de nowdoc. Esta construcción es ideal para embeber código PHP o grandes fragmentos de texto sin necesidad de escaparlo. Comparte algunas características comunes con la construcción SGML <![CDATA[ ]]>, donde se declara un fragmento de texto que no debe ser analizado.
Una cadena nowdoc se identifica con la misma sintaxis <<< usada para heredoc, pero el identificador que le sigue esta encerrado entre comillas simples, por ejemplo <<<'EOT'. Todas las reglas para los identificadores heredoc también son aplicables a los identificadores nowdoc, especialmente aquellos que se refieren al empleo del identificador de cierre.

Ejemplo #6 Ejemplo de entrecomillado de string Nowdoc

<?php
$str = <<<'EOD'
Ejemplo de una cadena
expandida en varias líneas
empleando la sintaxis nowdoc.
EOD;

/* Un ejemplo más complejo con variables. */
class foo
{
    public $foo;
    public $bar;

    function foo()
    {
        $this->foo = 'Foo';
        $this->bar = array('Bar1', 'Bar2', 'Bar3');
    }
}

$foo = new foo();
$name = 'MiNombre';

echo <<<'EOT'

Mi nombre es "$name". Estoy escribiendo un poco de $foo->foo.
Ahora, estoy escribiendo un poco de {$foo->bar[1]}.
Esto debe mostrar una 'A' mayúscula: \x41
EOT;
?>

Arrays

Un array en PHP es realmente un mapa ordenado. Un mapa es un tipo de datos que asocia valores con claves. Este tipo es optimizado para varios usos diferentes; puede ser usado como una matriz real, una lista (vector), una tabla asociativa (una implementación de un mapa), diccionario, colección, pila, cola, y posiblemente más. Ya que los valores de un array pueden ser otros arrays, árboles y también son posibles arrays multidimensionales.
Una explicación sobre tales estructuras de datos está fuera del alcance de este manual, pero encontrará al menos un ejemplo de cada uno de ellos. Para más información, consulte la extensa literatura que existe sobre este amplio tema.

Sintaxis

Especificación con array()

Un array puede ser creado usando el constructor del lenguaje array(). Éste toma un cierto número de parejas clave => valor como argumentos.

    array(
    clave  => valor,
    clave2 => valor2,
    clave3 => valor3,
    ...
    )

La coma después del elemento del array es opcional y se puede omitir. Esto normalmente se hace para arrays de una sola línea, esto es, es preferible array(1, 2) que array(1, 2, ). Por otra parte, para arrays multilínea, la coma final se usa comnúnmente, ya que permite la adición sencilla de nuevos elementos al final.

A partir de PHP 5.4 también se puede usar la sintaxis de array corta, que reemplaza array() con [].
Objetos

Inicialización de Objetos

Para crear un nuevo object, utilice la declaración new para instanciar una clase:

<?php
class foo
{
    function do_foo()
    {
        echo "Doing foo."; 
    }
}

$bar = new foo;
$bar->do_foo();
?>

Conversión a un objeto

Si un object se convierte en un object, éste no se ve modificado. Si un valor de cualquier otro tipo se convierte en un object, se crea una nueva instancia de la clase stdClass incorporada. Si el valor es NULL, la nueva instancia estará vacía. Los Arrays se convierten en un object con propiedades nombradas por claves con sus correspondientes valores. Para cualquier otro valor, una variable miembro denominada scalar contendrá el valor.

<?php
$obj = (object) 'ciao';
echo $obj->scalar;  // muestra 'ciao'
?>

Recursos

Un valor tipo resource es una variable especial, que contiene una referencia a un recurso externo. Los recursos son creados y usados por funciones especiales. Vea el apéndice para un listado de todas estas funciones y los tipos resourcecorrespondientes.
Vea también la función get_resource_type().

Conversión a recurso

Dado que las variables resource contienen gestores especiales a archivos abiertos, conexiones con bases de datos, áreas de pintura de imágenes y cosas por el estilo, la conversión a tipo resource carece de sentido.

Liberación de recursos

Gracias al sistema de conteo de referencias introducido con el Motor Zend de PHP 4, un recurso que ya no es referenciado es detectado automáticamente, y es liberado por el recolector de basura. Por esta razón, rara vez se necesita liberar la memoria manualmente.

NULO

El valor especial NULL representa una variable sin valor. NULL es el único valor posible del tipo null.

Una variable es considerada null si:
se le ha asignado la constante NULL.
no se le ha asignado un valor todavía.
se ha destruido con unset().

Sintaxis

No hay más que un valor de tipo null, y es la constante NULL insensible a mayúsculas/minúsculas.

<?php
$var = NULL;      
?>

Llamadas de retorno

Las llamadas de retorno se pueden indicar con el tipo callable a partir de PHP 5.4. Esta documentación utilizó la información del tipo callback con el mismo propósito.

Algunas funciones como call_user_func() o usort() aceptan como parámetro funciones de llamada de retorno definidas por el usuario. Las funciones de llamadas de retorno no sólo pueden ser funciones simples, sino también métodos de un object, incluyendo métodos de clase estáticos.

Pasar una función de llamada de retorno

Una función de PHP se pasa por su nombre como un string. Se puede utilizar cualquier función nativa o definida por el usuario, exceptuando contrucciones del lenguaje, tales como: array(), echo, empty(), eval(), exit(), isset(), list(), printo unset().

Un método de un object instanciado se pasa como un array que contiene un object en el índice 0 y el nombre del método en el índice 1.

Los métodos de clase estáticos también se pueden pasar sin instanciar un object de dicha clase, pasando el nombre de la clase en lugar de un object en el índice 0. A partir de PHP 5.2.3, también es posible pasar'NombreDeClase::nombreDeMetodo'.

Además de las funciones definidas por el usuario normales, también se puede utilizar la función create_function() para crear funciones de llamadas de retorno anónimas. A partir de PHP 5.3.0 también es posible pasar una clausura a un parámetro de una llamada de retorno.
Ejemplo #1 Ejemplos de funciones de llamadas de retorno
<?php
// Un ejemplo de función de llamada de retorno
function mi_función_de_llamada_de_retorno() {
    echo '¡hola mundo!';
}
// Un ejemplo de método de llamada de retorno
class MiClase {
    static function miMétodoDeLlamadaDeRetorno() {
        echo '¡Hola Mundo!';
    }
}
// Tipo 1: Llamada de retorno simple
call_user_func('mi_función_de_llamada_de_retorno'); 
// Tipo 2: Llamada a un método de clase estático
call_user_func(array('MiClase', 'miMétodoDeLlamadaDeRetorno')); 
// Tipo 3: Llamada al método de un objeto
$obj = new MiClase();
call_user_func(array($obj, 'miMétodoDeLlamadaDeRetorno'));
// Tipo 4: Llamada a un método de clase estático (A partir de PHP 5.2.3)
call_user_func('MiClase::miMétodoDeLlamadaDeRetorno');
// Tipo 5: Llamada a un método de clase estático relativo (A partir de PHP 5.3.0)
class A {
    public static function quién() {
        echo "A\n";
    }
}
class B extends A {
    public static function quién() {
        echo "B\n";
    }
}
call_user_func(array('B', 'parent::quién')); // A
?>
Ejemplo #2 Ejemplo de llamada de retorno utilizando una clausura
<?php
// Nuestra clausura
$doble = function($a) {
    return $a * 2;
};
// Este es nuestro rango de números
$números = range(1, 5);
// Usar la clausura como llamada de retorno para
// doblar el valor de cada elemento de nuestro
// rango
$números_nuevos = array_map($doble, $números);
print implode(' ', $números_nuevos);
?>

Manipulación de tipos

PHP no requiere (ni soporta) la definición explicita de tipos en la declaración de variables; el tipo de la variable se determina por el contexto en el cual se emplea la variable. Es decir, si se asigna un valor string a una variable $var, entonces$var se convierte en un string. Si un valor integer es entonces asignado a la misma variable $var, ésta se convierte en integer.
Un ejemplo de la conversión de tipos automática de PHP es el operador suma '+'. Si ambos operandos son float, entonces ambos operandos son evaluados como floats y el resultado será un float. De otra manera, los operandos seran interpretados como integers, y el resultado será entonces integer. Tenga en cuenta que esto no implica que se cambien los tipos de los propios operandos; el único cambio es en como se evalúan los operandos y en el tipo de expresión en sí mismo.

<?php
$foo = "0";  // $foo es string (ASCII 48)
$foo += 2;   // $foo es ahora un integer (2)
$foo = $foo + 1.3;  // $foo es ahora un float (3.3)
$foo = 5 + "10 Cerditos pequeñitos"; // $foo es integer (15)
$foo = 5 + "10 Cerdos pequeños";     // $foo es integer (15)

Sintaxis

Los integer pueden ser especificados mediante notación decimal (base 10), hexadecimal (base 16), octal (base 8) o binaria (base 2), opcionalmente precedidos por un signo (- o +).
Los literales integer binarios están disponibles desde PHP 5.4.0.
Para usar la notación octal, se antepone al número un 0 (cero). Para usar la notación hexadecimal, se antepone al número un 0x. Para usar la notación binaria, se antepone al número un 0b.
Ejemplo #1 Enteros literales
<?php
$a = 1234; // número decimal
$a = -123; // un número negativo
$a = 0123; // número octal (equivalente a 83 decimal)
$a = 0x1A; // número hexadecimal (equivalente a 26 decimal)
?>


















Concatenar variables en php

1.- Creación y modificación de Variables

Para crear una variable usaremos esta estructura: $nombre_variable.


$texto = "Esto es un string de texto";
$numero = 65;
2.- Tipos

Podemos usar diferentes tipos de variables, como hemos visto en la creación de variables, aparte de las variables de cadenas de texto y número tenemos los booleanos (verdadero y falso).



$texto = "Esto es un string de texto";
$numero = 65;
$boolean = TRUE;

Las variables de texto irán entre comillas ” “ mientras que los números y los booleanos no hará falta. Si para declarar un número/booleano usamos comillas, se mostrará tal y como es, en caso de realizar una operación con un string de texto con números únicamente  que nos realizará la operación ya que PHP tiene un convertidor por así decirlo.
 vTipos de variables
Booleanos
Este es el tipo más simple. Un boolean expresa un valor de verdad. Puede ser TRUE or FALSE.

Sintaxis:

Para especificar un literal boolean, use alguna de las palabras clave TRUE o FALSE. Ambas son insensibles a mayúsculas y minúsculas.
<?php
$foo = True; // asigna el valor TRUE a $foo
?>

Enteros

Un entero o integer es un número del conjunto  = {..., -2, -1, 0, 1, 2, ...}.


Tabla de contenidos:

gmp_abs — Valor absoluto
gmp_add — Agrega números
gmp_and — Nivel de bit AND
gmp_clrbit — Limpia un bit
gmp_cmp — Compara los números
gmp_com — Calcula uno de los complementos
gmp_div_q — Divide los números
gmp_div_qr — Divide los números y obtiene el cociente y resto
gmp_div_r — El resto de la división de los números
gmp_div — Alias de gmp_div_q
gmp_divexact — División exacta de números
gmp_fact — Factorial
gmp_gcd — Calcula el máximo común divisor
gmp_gcdext — Calcula el máximo común divisor y multiplicadores
gmp_hamdist — Distancia Hamming
gmp_init — Crea un número GMP
gmp_intval — Convertir un número GMP a entero
gmp_invert — Inverso del modulo
gmp_jacobi — Símbolo Jacobi
gmp_legendre — Símbolo Legendre
gmp_mod — Modulo de operación
gmp_mul — Multiplicación de números
gmp_neg — Número negativo
gmp_nextprime — Encuentra el siguiente número primo
gmp_or — Nivel de bit OR
gmp_perfect_square — Comprueba el cuadrado perfecto
gmp_popcount — Cuenta la población
gmp_pow — Aumenta el número a la potencia
gmp_powm — Eleva un número a la potencia con modulo
gmp_prob_prime — Revisa si el número es "probablemente primo"
gmp_random — Numero al azar
gmp_scan0 — Escanear para 0
gmp_scan1 — Escanear para 1
gmp_setbit — Establece el bit
gmp_sign — El símbolo del número
gmp_sqrt — Calcula la raíz cuadrada
gmp_sqrtrem — Raíz cuadrada con resto
gmp_strval — Convierte un número GMP a cadena
gmp_sub — Resta los números
gmp_testbit — Prueba si un bit es establecido
gmp_xor — Nivel de bit XOR

Números de punto flotante

Los números de punto flotante (también conocidos como "flotantes", "dobles" o "números reales") pueden ser especificados usando cualquiera de las siguientes sintaxis:
<?php
$a = 1.234; 
$b = 1.2e3; 
$c = 7E-10;
?>


Tabla de contenidos:

bcadd — Añade dos números de precisión arbitrária
bccomp — Compara dos números de precisión arbitraria
bcdiv — Divide dos números de precisión arbitraria
bcmod — Obtiene el módulo de un número de precisión arbitraria
bcmul — Multiplica dos números de precisión arbitraria
bcpow — Elevar un número de precisión arbitraria a otro
bcpowmod — Eleva un número de precisión arbitraria a otro, reducido por un módulo especificado
bcscale — Establece los parametros de scale por defecto para todas las funciones matemáticas de bc
bcsqrt — Obtiene la raiz cuadrada de un número de precisión arbitraria
bcsub — Resta un número de precisión arbitraria de otro

Números de punto flotante

Los números de punto flotante (también conocidos como "flotantes", "dobles" o "números reales") pueden ser especificados usando cualquiera de las siguientes sintaxis:

<?php
$a = 1.234; 
$b = 1.2e3; 
$c = 7E-10;
?>

Cadenas

Un string es una serie de caracteres donde un caracter es lo mismo que un byte. Esto significa que PHP solo soporta el conjunto de 256 caracteres y por lo tanto no tiene soporte nativo Unicode. Ver detalles del tipo de dato string.

Sintaxis

Un string literal puede ser especificado de cuatro formas diferentes:


<?php
echo 'Esto es una cadena sencilla';

echo 'Tambien puede incluir nuevas líneas en
cadenas de esta forma ya que es
correcto hacerlo así';

// Resultado: Arnold una vez dijo: "I'll be back"
echo 'Arnold una vez dijo: "I\'ll be back"';

// Resultado: Ha borrado C:\*.*?
echo 'Ha borrado C:\\*.*?';

// Resultado: Ha borrado C:\*.*?
echo 'Ha borrado C:\*.*?';

// Resultado: Esto no se expandirá: \n una nueva línea
echo 'Esto no se expandirá: \n una nueva línea';

// Resultado: Las variables $tampoco se $expandiran
echo 'Las variables $tampoco se $expandiran';
?>


Si un string está encerrado entre comillas dobles ("), PHP interpretará más sentencias de escape como caracteres especiales:
Caracteres escapados
Sentencia
Significado
\n
avance de línea (LF o 0x0A (10) en ASCII)
\r
retorno de carro (CR o 0x0D (13) en ASCII)
\t
tabulador horizontal (HT o 0x09 (9) en ASCII)
\v
tabulador vertical (VT o 0x0B (11) en ASCII) (desde PHP 5.2.5)
\e
escape (ESC o 0x1B (27) en ASCII) (desde PHP 5.4.0)
\f
avance de página (FF o 0x0C (12) en ASCII) (desde PHP 5.2.5)
\\
barra invertida
\$
signo del dólar
\"
comillas dobles
\[0-7]{1,3}
la secuencia de caracteres que coincida con la expresión regular es un caracter en notación octal
\x[0-9A-Fa-f]{1,2}
la secuencia de caracteres que coincida con la expresión regular es un caracter en notación hexadecimal

Al igual que en la delimitación de un string mediante comillas simples, escapar cualquier otro caracter puede dar lugar a que se muestre tambien la barra invertida. Antes de PHP 5.1.1, la barra invertida en \{$var} no se mostraba.
La característica más importante de entrecomillar un string mediante comillas dobles es el hecho que los nombres de las variables son expandidas. Consulte string parsing para más detalles.


Una tercera forma de delimitar un string es mediante la sintaxis heredoc: <<<. Después de este operador, se deberá ofrecer un identificador y después una nueva línea. A continuación va el propio string, y para cerrar la notación se pone el mismo identificador.
El identificador de cierre debe empezar en la primera columna de la nueva línea. Asimismo, el identificador debe seguir las mismas reglas de nomenclatura de las etiquetas en PHP: debe contener solo caracteres alfanuméricos y guiones bajos, y debe empezar con un caracter alfabético o un guión bajo.

<?php
class foo {
    public $bar = <<<EOT
bar
    EOT;
}
?>

Nowdoc (desde PHP 5.3.0)

Nowdocs son a las cadenas con comillas simples lo mismo que Heredoc lo es a las comillas dobles. Una cadena nowdoc se especifica de forma análoga a la heredoc, pero no se realiza ningún análisis dentro de nowdoc. Esta construcción es ideal para embeber código PHP o grandes fragmentos de texto sin necesidad de escaparlo. Comparte algunas características comunes con la construcción SGML <![CDATA[ ]]>, donde se declara un fragmento de texto que no debe ser analizado.
Una cadena nowdoc se identifica con la misma sintaxis <<< usada para heredoc, pero el identificador que le sigue esta encerrado entre comillas simples, por ejemplo <<<'EOT'. Todas las reglas para los identificadores heredoc también son aplicables a los identificadores nowdoc, especialmente aquellos que se refieren al empleo del identificador de cierre.

Ejemplo #6 Ejemplo de entrecomillado de string Nowdoc

<?php
$str = <<<'EOD'
Ejemplo de una cadena
expandida en varias líneas
empleando la sintaxis nowdoc.
EOD;

/* Un ejemplo más complejo con variables. */
class foo
{
    public $foo;
    public $bar;

    function foo()
    {
        $this->foo = 'Foo';
        $this->bar = array('Bar1', 'Bar2', 'Bar3');
    }
}

$foo = new foo();
$name = 'MiNombre';

echo <<<'EOT'

Mi nombre es "$name". Estoy escribiendo un poco de $foo->foo.
Ahora, estoy escribiendo un poco de {$foo->bar[1]}.
Esto debe mostrar una 'A' mayúscula: \x41
EOT;
?>

Arrays

Un array en PHP es realmente un mapa ordenado. Un mapa es un tipo de datos que asocia valores con claves. Este tipo es optimizado para varios usos diferentes; puede ser usado como una matriz real, una lista (vector), una tabla asociativa (una implementación de un mapa), diccionario, colección, pila, cola, y posiblemente más. Ya que los valores de un array pueden ser otros arrays, árboles y también son posibles arrays multidimensionales.
Una explicación sobre tales estructuras de datos está fuera del alcance de este manual, pero encontrará al menos un ejemplo de cada uno de ellos. Para más información, consulte la extensa literatura que existe sobre este amplio tema.

Sintaxis

Especificación con array()

Un array puede ser creado usando el constructor del lenguaje array(). Éste toma un cierto número de parejas clave => valor como argumentos.

    array(
    clave  => valor,
    clave2 => valor2,
    clave3 => valor3,
    ...
    )

La coma después del elemento del array es opcional y se puede omitir. Esto normalmente se hace para arrays de una sola línea, esto es, es preferible array(1, 2) que array(1, 2, ). Por otra parte, para arrays multilínea, la coma final se usa comnúnmente, ya que permite la adición sencilla de nuevos elementos al final.

A partir de PHP 5.4 también se puede usar la sintaxis de array corta, que reemplaza array() con [].
Objetos

Inicialización de Objetos

Para crear un nuevo object, utilice la declaración new para instanciar una clase:

<?php
class foo
{
    function do_foo()
    {
        echo "Doing foo."; 
    }
}

$bar = new foo;
$bar->do_foo();
?>

Conversión a un objeto

Si un object se convierte en un object, éste no se ve modificado. Si un valor de cualquier otro tipo se convierte en un object, se crea una nueva instancia de la clase stdClass incorporada. Si el valor es NULL, la nueva instancia estará vacía. Los Arrays se convierten en un object con propiedades nombradas por claves con sus correspondientes valores. Para cualquier otro valor, una variable miembro denominada scalar contendrá el valor.

<?php
$obj = (object) 'ciao';
echo $obj->scalar;  // muestra 'ciao'
?>

Recursos

Un valor tipo resource es una variable especial, que contiene una referencia a un recurso externo. Los recursos son creados y usados por funciones especiales. Vea el apéndice para un listado de todas estas funciones y los tipos resourcecorrespondientes.
Vea también la función get_resource_type().

Conversión a recurso

Dado que las variables resource contienen gestores especiales a archivos abiertos, conexiones con bases de datos, áreas de pintura de imágenes y cosas por el estilo, la conversión a tipo resource carece de sentido.

Liberación de recursos

Gracias al sistema de conteo de referencias introducido con el Motor Zend de PHP 4, un recurso que ya no es referenciado es detectado automáticamente, y es liberado por el recolector de basura. Por esta razón, rara vez se necesita liberar la memoria manualmente.

NULO

El valor especial NULL representa una variable sin valor. NULL es el único valor posible del tipo null.

Una variable es considerada null si:
se le ha asignado la constante NULL.
no se le ha asignado un valor todavía.
se ha destruido con unset().

Sintaxis

No hay más que un valor de tipo null, y es la constante NULL insensible a mayúsculas/minúsculas.

<?php
$var = NULL;      
?>

Llamadas de retorno

Las llamadas de retorno se pueden indicar con el tipo callable a partir de PHP 5.4. Esta documentación utilizó la información del tipo callback con el mismo propósito.

Algunas funciones como call_user_func() o usort() aceptan como parámetro funciones de llamada de retorno definidas por el usuario. Las funciones de llamadas de retorno no sólo pueden ser funciones simples, sino también métodos de un object, incluyendo métodos de clase estáticos.

Pasar una función de llamada de retorno

Una función de PHP se pasa por su nombre como un string. Se puede utilizar cualquier función nativa o definida por el usuario, exceptuando contrucciones del lenguaje, tales como: array(), echo, empty(), eval(), exit(), isset(), list(), printo unset().

Un método de un object instanciado se pasa como un array que contiene un object en el índice 0 y el nombre del método en el índice 1.

Los métodos de clase estáticos también se pueden pasar sin instanciar un object de dicha clase, pasando el nombre de la clase en lugar de un object en el índice 0. A partir de PHP 5.2.3, también es posible pasar'NombreDeClase::nombreDeMetodo'.

Además de las funciones definidas por el usuario normales, también se puede utilizar la función create_function() para crear funciones de llamadas de retorno anónimas. A partir de PHP 5.3.0 también es posible pasar una clausura a un parámetro de una llamada de retorno.
Ejemplo #1 Ejemplos de funciones de llamadas de retorno
<?php
// Un ejemplo de función de llamada de retorno
function mi_función_de_llamada_de_retorno() {
    echo '¡hola mundo!';
}
// Un ejemplo de método de llamada de retorno
class MiClase {
    static function miMétodoDeLlamadaDeRetorno() {
        echo '¡Hola Mundo!';
    }
}
// Tipo 1: Llamada de retorno simple
call_user_func('mi_función_de_llamada_de_retorno'); 
// Tipo 2: Llamada a un método de clase estático
call_user_func(array('MiClase', 'miMétodoDeLlamadaDeRetorno')); 
// Tipo 3: Llamada al método de un objeto
$obj = new MiClase();
call_user_func(array($obj, 'miMétodoDeLlamadaDeRetorno'));
// Tipo 4: Llamada a un método de clase estático (A partir de PHP 5.2.3)
call_user_func('MiClase::miMétodoDeLlamadaDeRetorno');
// Tipo 5: Llamada a un método de clase estático relativo (A partir de PHP 5.3.0)
class A {
    public static function quién() {
        echo "A\n";
    }
}
class B extends A {
    public static function quién() {
        echo "B\n";
    }
}
call_user_func(array('B', 'parent::quién')); // A
?>
Ejemplo #2 Ejemplo de llamada de retorno utilizando una clausura
<?php
// Nuestra clausura
$doble = function($a) {
    return $a * 2;
};
// Este es nuestro rango de números
$números = range(1, 5);
// Usar la clausura como llamada de retorno para
// doblar el valor de cada elemento de nuestro
// rango
$números_nuevos = array_map($doble, $números);
print implode(' ', $números_nuevos);
?>

Manipulación de tipos

PHP no requiere (ni soporta) la definición explicita de tipos en la declaración de variables; el tipo de la variable se determina por el contexto en el cual se emplea la variable. Es decir, si se asigna un valor string a una variable $var, entonces$var se convierte en un string. Si un valor integer es entonces asignado a la misma variable $var, ésta se convierte en integer.
Un ejemplo de la conversión de tipos automática de PHP es el operador suma '+'. Si ambos operandos son float, entonces ambos operandos son evaluados como floats y el resultado será un float. De otra manera, los operandos seran interpretados como integers, y el resultado será entonces integer. Tenga en cuenta que esto no implica que se cambien los tipos de los propios operandos; el único cambio es en como se evalúan los operandos y en el tipo de expresión en sí mismo.

<?php
$foo = "0";  // $foo es string (ASCII 48)
$foo += 2;   // $foo es ahora un integer (2)
$foo = $foo + 1.3;  // $foo es ahora un float (3.3)
$foo = 5 + "10 Cerditos pequeñitos"; // $foo es integer (15)
$foo = 5 + "10 Cerdos pequeños";     // $foo es integer (15)

Sintaxis

Los integer pueden ser especificados mediante notación decimal (base 10), hexadecimal (base 16), octal (base 8) o binaria (base 2), opcionalmente precedidos por un signo (- o +).
Los literales integer binarios están disponibles desde PHP 5.4.0.
Para usar la notación octal, se antepone al número un 0 (cero). Para usar la notación hexadecimal, se antepone al número un 0x. Para usar la notación binaria, se antepone al número un 0b.
Ejemplo #1 Enteros literales
<?php
$a = 1234; // número decimal
$a = -123; // un número negativo
$a = 0123; // número octal (equivalente a 83 decimal)
$a = 0x1A; // número hexadecimal (equivalente a 26 decimal)
?>


















Concatenar variables en php

1.- Creación y modificación de Variables

Para crear una variable usaremos esta estructura: $nombre_variable.


$texto = "Esto es un string de texto";
$numero = 65;
2.- Tipos

Podemos usar diferentes tipos de variables, como hemos visto en la creación de variables, aparte de las variables de cadenas de texto y número tenemos los booleanos (verdadero y falso).



$texto = "Esto es un string de texto";
$numero = 65;
$boolean = TRUE;

Las variables de texto irán entre comillas ” “ mientras que los números y los booleanos no hará falta. Si para declarar un número/booleano usamos comillas, se mostrará tal y como es, en caso de realizar una operación con un string de texto con números únicamente  que nos realizará la operación ya que PHP tiene un convertidor por así decirlo.

3.- Ámbito de las variables

Hay dos tipos de ámbitos en los que declarar una variable: local y global. La diferencia es que las variables locales solo pueden ser usadas dentro de la función en la que fueron definidas, mientras que las globales las podemos utilizar en cualquier parte de nuestro script y desde diferentes funciones.
Por norma general, las variables se declaran automáticamente en local a menos que la declaremos en modo global.

global $nombre_del_sitio = "Yo No Programo";

4.- Concatenar

Para concatenar una variable con una cadena de texto, por ejemplo:
Este texto esta repartido en dos variables

Siendo “Este texto esta” una variable y “en dos variables” otra, haremos lo siguiente:


$primera = "Este texto esta ";
$segunda = "repartido en dos variables";
echo $primera.$segunda;

Como podemos observar hemos creado dos variables de tipo string y le hemos asignado un valor, después con la función echo las hemos mostrado por pantalla concatenando las variables para formar una frase.

Podemos concatenar variables tanto numéricas como de texto, aparte le podemos añadir una cadena de texto o un número sin tener que estar en una variable. Por ejemplo:




$string = "El numero es ";
$int = 5;
$cinco = "cinco";
echo $string . $int " que escrito es ".$cinco;

http://www.yonoprogramo.com/variables-php-introduccion-al-php/#833
3.- Ámbito de las variables

Hay dos tipos de ámbitos en los que declarar una variable: local y global. La diferencia es que las variables locales solo pueden ser usadas dentro de la función en la que fueron definidas, mientras que las globales las podemos utilizar en cualquier parte de nuestro script y desde diferentes funciones.
Por norma general, las variables se declaran automáticamente en local a menos que la declaremos en modo global.

global $nombre_del_sitio = "Yo No Programo";

4.- Concatenar

Para concatenar una variable con una cadena de texto, por ejemplo:
Este texto esta repartido en dos variables

Siendo “Este texto esta” una variable y “en dos variables” otra, haremos lo siguiente:


$primera = "Este texto esta ";
$segunda = "repartido en dos variables";
echo $primera.$segunda;

Como podemos observar hemos creado dos variables de tipo string y le hemos asignado un valor, después con la función echo las hemos mostrado por pantalla concatenando las variables para formar una frase.

Podemos concatenar variables tanto numéricas como de texto, aparte le podemos añadir una cadena de texto o un número sin tener que estar en una variable. Por ejemplo:




$string = "El numero es ";
$int = 5;
$cinco = "cinco";
echo $string . $int " que escrito es ".$cinco;


http://www.yonoprogramo.com/variables-php-introduccion-al-php/#833

No hay comentarios:

Publicar un comentario