LMPX.COM |
Home | Linux | Mysql | PHP | XML | ||
|
|
|||
From: Leonardo Boshell Date: Tue Jul 8 23:16:41 2008 Subject: cvs: phpdoc-es /language/types array.xml
lboshell Wed Jul 9 05:16:41 2008 UTC
Added files:
/phpdoc-es/language/types array.xml
Log:
Nuevo archivo de acuerdo a la nueva organizacion de language/types/
http://cvs.php.net/viewvc.cgi/phpdoc-es/language/types/array.xml?view=markup&rev=1.1
Index: phpdoc-es/language/types/array.xml
+++ phpdoc-es/language/types/array.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 1.1 $ -->
<!-- EN-Revision: 1.4 Maintainer: lboshell Status: ready -->
<sect1 xml:id="language.types.array">
<title>Matrices</title>
<para>
Una valor <type>array</type> en PHP es en realidad un mapa ordenado. Un
mapa es un tipo de datos que asocia <emphasis>valores</emphasis> con
<emphasis>claves</emphasis>. Este tipo es optimizado para varios usos
diferentes; puede ser usado como una matriz real, una lista (vector),
tabla asociativa (caso particular de implementación de un mapa),
diccionario, colección, pila, cola y probablemente más. Ya que los valores
de una matriz pueden ser otras matrices, también es posible crear árboles
y matrices multidimensionales.
</para>
<para>
Una explicación sobre tales estructuras de datos se encuentra por fuera
del propósito 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.
</para>
<sect2 xml:id="language.types.array.syntax">
<title>Sintaxis</title>
<sect3 xml:id="language.types.array.syntax.array-func">
<title>Especificación con <function>array</function></title>
<para>
Un valor <type>array</type> puede ser creado por la construcción de
lenguaje <function>array</function>. Ésta toma un cierto número de
parejas <literal><replaceable>clave</replaceable> =>
<replaceable>valor</replaceable></literal> separadas con coma.
</para>
<synopsis>
array( <optional> <replaceable>clave</replaceable> => </optional> <replaceable>valor</replaceable>
, ...
)
// <replaceable>clave</replaceable> puede ser un <type>integer</type> o <type>string</type>
// <replaceable>valor</replaceable> puede ser cualquier valor</synopsis>
<!-- Do not fix the whitespace for the synopsis end element. A limitation of PhD prevents proper trimming -->
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$matriz = array("foo" => "bar", 12 => true);
echo $matriz["foo"]; // bar
echo $matriz[12]; // 1
?>
]]>
</programlisting>
</informalexample>
<para>
Una <varname>clave</varname> puede ser un <type>integer</type> o un
<type>string</type>. Si una clave es la representación estándar de un
<type>integer</type>, será interpretada como tal (es decir,
<literal>"8"</literal> será interpretado como <literal>8</literal>,
mientras que <literal>"08"</literal> será interpretado como
<literal>"08"</literal>). Los valores <type>float</type> en
<varname>clave</varname> serán truncados a valores tipo
<type>integer</type>. Las matrices indexadas y las asociativas son el
mismo tipo en PHP, el cual puede contener índices tipo entero o cadena.
</para>
<para>
Un valor puede ser de cualquier tipo en PHP.
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$matriz = array("unamatriz" => array(6 => 5, 13 => 9, "a" => 42));
echo $matriz["unamatriz"][6]; // 5
echo $matriz["unamatriz"][13]; // 9
echo $matriz["unamatriz"]["a"]; // 42
?>
]]>
</programlisting>
</informalexample>
<para>
Si no especifica una clave para un valor dado, entonces es usado el
máximo de los índices enteros, y la nueva clave será ese valor máximo
más 1. Si se especifica una clave que ya tiene un valor asignado, ése
valor será sobrescrito.
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
// Esta matriz es la misma que ...
array(5 => 43, 32, 56, "b" => 12);
// ...esta matriz
array(5 => 43, 6 => 32, 7 => 56, "b" => 12);
?>
]]>
</programlisting>
</informalexample>
<warning>
<simpara>
Antes de PHP 4.3.0, agregar un elemento a una matriz cuya clave máxima
actual es un valor negativo creaba una nueva clave como se ha descrito
anteriormente. A partir de PHP 4.3.0, la nueva clave será
<literal>0</literal>.
</simpara>
</warning>
<para>
Al usar &true; como <varname>clave</varname>, el valor será evaluado al
<type>integer</type> <literal>1</literal>. Al usar &false; como
<varname>clave</varname>, el valor será evaluado al <type>integer</type>
<literal>0</literal>. Al usar &null; como clave, el valor será evaluado
a una cadena vacía. El uso de una cadena vacía como clave creará (o
reemplazará) una clave con la cadena vacía y su valor;
<emphasis>no</emphasis> es lo mismo que usar corchetes vacíos.
</para>
<para>
Las matrices y los objetos no pueden ser usados como claves. Al hacerlo
se producirá una advertencia: <literal>Illegal offset type</literal>.
</para>
</sect3>
<sect3 xml:id="language.types.array.syntax.modifying">
<title>Creación/modificación con sintaxis de corchetes cuadrados</title>
<para>
Es posible modificar una matriz existente al definir valores
explícitamente en ella.
</para>
<para>
Esto es posible al asignar valores a la matriz al mismo tiempo que se
especifica la clave entre corchetes. También es posible omitir la clave,
lo que resulta en una pareja de corchetes vacíos
(<literal>[]</literal>).
</para>
<synopsis>
$matriz[<replaceable>clave</replaceable>] = <replaceable>valor</replaceable>;
$matriz[] = <replaceable>valor</replaceable>;
// <replaceable>clave</replaceable> puede ser un <type>integer</type> o <type>string</type>
// <replaceable>valor</replaceable> puede ser cualquier valor</synopsis>
<para>
Si <varname>$matriz</varname> no existe aun, será creada, así que ésta
es también una forma alternativa de crear una matriz. Para modificar un
cierto valor, simplemente asigne un nuevo valor a un elemento usando su
clave. Para remover una pareja clave/valor, use la función
<function>unset</function> sobre ella.
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$matriz = array(5 => 1, 12 => 2);
$matriz[] = 56; // Esto es igual que $matriz[13] = 56;
// en este punto del script
$matriz["x"] = 42; // Esto agrega un nuevo elemento a la
// matriz con la clave "x"
unset($matriz[5]); // Esto elimina el elemento de la matriz
unset($matriz); // Esto elimina la matriz completa
***
?>
]]>
</programlisting>
</informalexample>
<note>
<para>
Como se menciona anteriormente, si no se especifica una clave, entonces
se toma el máximo de los índices enteros existentes, y la nueva clave
será ese valor máximo más 1. Si no existen índices enteros aun, la
clave será <literal>0</literal> (cero). Si se especifica una clave que
ya tenía un valor asignado, el valor será reemplazado.
</para>
<para>
Note que la clave entera máxima usada para este caso <emphasis>no
necesita existir actualmente en la matriz</emphasis>. Tan solo debe
haber existido en la matriz en algún punto desde que la matriz haya
sido re-indexada. El siguiente ejemplo ilustra este caso:
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
// Crear una matriz simple.
$matriz = array(1, 2, 3, 4, 5);
print_r($matriz);
// Ahora eliminar cada ítem, pero dejar la matriz misma intacta:
foreach ($matriz as $i => $valor) {
unset($matriz[$i]);
}
print_r($matriz);
// Agregar un ítem (note que la nueva clave es 5, en lugar de 0).
$matriz[] = 6;
print_r($matriz);
// Re-indexar:
$matriz = array_values($matriz);
$matriz[] = 7;
print_r($matriz);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
Array
(
)
Array
(
[5] => 6
)
Array
(
[0] => 6
[1] => 7
)
]]>
</screen>
</informalexample>
</note>
</sect3>
</sect2><!-- end syntax -->
<sect2 xml:id="language.types.array.useful-funcs">
<title>Funciones útiles</title>
<para>
Existe un buen número de funciones útiles para trabajar con matrices.
Consulte la sección <link linkend="ref.array">funciones de
matrices</link>.
</para>
<note>
<para>
La función <function>unset</function> le permite remover claves de una
matriz. Tenga en cuenta que la matriz <emphasis>no</emphasis> es
re-indexada. Si desea el comportamiento real de "eliminar y desplazar",
la matriz puede ser re-indexada usando la función
<function>array_values</function>.
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$a = array(1 => 'uno', 2 => 'dos', 3 => 'tres');
unset($a[2]);
/* producirá una matriz que hubiera sido definida como
$a = array(1 => 'uno', 3 => 'tres');
y NO
$a = array(1 => 'uno', 2 =>'tres');
*/
$b = array_values($a);
// Ahora $b es array(0 => 'uno', 1 =>'tres')
?>
]]>
</programlisting>
</informalexample>
</note>
<para>
La estructura de control <link
linkend="control-structures.foreach">foreach</link> existe
específicamente para las matrices. Ésta provee una manera fácil de
recorrer una matriz.
</para>
</sect2>
<sect2 xml:id="language.types.array.donts">
<title>Recomendaciones sobre matrices y cosas a evitar</title>
<sect3 xml:id="language.types.array.foo-bar">
<title>¿Porqué es incorrecto <literal>$foo[bar]</literal>?</title>
<para>
Siempre deben usarse comillas alrededor de un índice de matriz tipo
cadena literal. Por ejemplo, <literal>$foo['bar']</literal> es correcto,
mientras que <literal>$foo[bar]</literal> no lo es. ¿Pero porqué? Es
común encontrar este tipo de sintaxis en scripts viejos:
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$foo[bar] = 'enemigo';
echo $foo[bar];
// etc
?>
]]>
</programlisting>
</informalexample>
<para>
Esto está mal, pero funciona. La razón es que este código tiene una
constante indefinida (bar) en lugar de un valor <type>string</type>
('bar' - note las comillas). Puede que en el futuro PHP defina
constantes que, desafortunadamente para tal tipo de código, tengan el
mismo nombre. Funciona porque PHP automáticamente convierte una
<emphasis>cadena pura</emphasis> (una cadena sin comillas que no
corresponda con símbolo conocido alguno) en una cadena que contiene la
cadena pura. Por ejemplo, si no se ha definido una constante llamada
<constant>bar</constant>, entonces PHP reemplazará su valor por la
cadena <literal>'bar'</literal> y usará ésta última.
</para>
<note>
<simpara>
Esto no quiere decir que <emphasis>siempre</emphasis> haya que usar
comillas en la clave. No use comillas con claves que sean <link
linkend="language.constants">constantes</link> o <link
linkend="language.variables">variables</link>, ya que en tal caso PHP
no podrá interpretar sus valores.
</simpara>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('html_errors', false);
// Matriz simple:
$matriz = array(1, 2);
$conteo = count($matriz);
for ($i = 0; $i < $conteo; $i++) {
echo "\nRevisando $i: \n";
echo "Mal: " . $matriz['$i'] . "\n";
echo "Bien: " . $matriz[$i] . "\n";
echo "Mal: {$matriz['$i']}\n";
echo "Bien: {$matriz[$i]}\n";
}
?>
]]>
</programlisting>
</informalexample>
&example.outputs;
<screen>
<![CDATA[
Revisando 0:
Notice: Undefined index: $i in /path/to/script.html on line 9
Mal:
Bien: 1
Notice: Undefined index: $i in /path/to/script.html on line 11
Mal:
Bien: 1
Revisando 1:
Notice: Undefined index: $i in /path/to/script.html on line 9
Mal:
Bien: 2
Notice: Undefined index: $i in /path/to/script.html on line 11
Mal:
Bien: 2
***
]]>
</screen>
</note>
<para>
Más ejemplos para demostrar este comportamiento:
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
// Mostrar todos los errores
error_reporting(E_ALL);
$matriz = array('fruta' => 'manzana', 'vegetal' => 'zanahoria');
// Correcto
print $matriz['fruta']; // manzana
print $matriz['vegetal']; // zanahoria
// Incorrecto. Esto funciona pero también genera un error de PHP de
// nivel E_NOTICE ya que no hay definida una constante llamada fruta
//
// Notice: Use of undefined constant fruta - assumed 'fruta' in...
print $matriz[fruta]; // manzana
// Esto define una constante para demostrar lo que pasa. El valor 'vegetal'
// es asignado a una constante llamada fruta.
define('fruta', 'vegetal');
// Note la diferencia ahora
print $matriz['fruta']; // manzana
print $matriz[fruta]; // zanahoria
// Lo siguiente está bien ya que se encuentra al interior de una
// cadena. Las constantes no son procesadas al interior de
// cadenas, así que no se produce un error E_NOTICE aquí
print "Hola $matriz[fruta]"; // Hola manzana
// Con una excepción, los corchetes que rodean las matrices al
// interior de cadenas permiten el uso de constantes
print "Hola {$matriz[fruta]}"; // Hola zanahoria
print "Hola {$matriz['fruta']}"; // Hola manzana
// Esto no funciona, resulta en un error de intérprete como:
// Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING'
// Esto por supuesto se aplica también al uso de superglobales en cadenas
print "Hola $matriz['fruta']";
print "Hola $_GET['foo']";
// La concatenación es otra opción
print "Hola " . $matriz['fruta']; // Hola manzana
?>
]]>
</programlisting>
</informalexample>
<para>
Cuando se habilita <function>error_reporting</function> para mostrar
errores de nivel <constant>E_NOTICE</constant> (como por ejemplo
definiendo el valor <constant>E_ALL</constant>), este tipo de usos serán
inmediatamente visibles. Por omisión, <link
linkend="ini.error-reporting">error_reporting</link> se encuentra
configurado para no mostrarlos.
</para>
<para>
Tal y como se indica en la sección de <link
linkend="language.types.array.syntax">sintaxis</link>, lo que existe
entre los corchetes cuadrados ('<literal>[</literal>' y
'<literal>]</literal>') debe ser una expresión. Esto quiere decir que
código como el siguiente funciona:
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
echo $matriz[alguna_funcion($bar)];
?>
]]>
</programlisting>
</informalexample>
<para>
Este es un ejemplo del uso de un valor devuelto por una función como
índice de matriz. PHP también conoce las constantes:
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$descripciones_de_error[E_ERROR] = "Un error fatal ha ocurrido";
$descripciones_de_error[E_WARNING] = "PHP produjo una advertencia";
$descripciones_de_error[E_NOTICE] = "Esta es una noticia informal";
?>
]]>
</programlisting>
</informalexample>
<para>
Note que <literal>E_ERROR</literal> es también un identificador válido,
asi como <literal>bar</literal> en el primer ejemplo. Pero el último
ejemplo es equivalente a escribir:
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$descripciones_de_error[1] = "Un error fatal ha ocurrido";
$descripciones_de_error[2] = "PHP produjo una advertencia";
$descripciones_de_error[8] = "Esta es una noticia informal";
?>
]]>
</programlisting>
</informalexample>
<para>
ya que <literal>E_ERROR</literal> es igual a <literal>1</literal>, etc.
</para>
<sect4 xml:id="language.types.array.foo-bar.why">
<title>¿Entonces porqué está mal?</title>
<para>
En algún momento en el futuro, puede que el equipo de PHP quiera usar
otra constante o palabra clave, o una constante proveniente de otro
código puede interferir. Por ejemplo, en este momento no puede usar
las palabras <literal>empty</literal> y <literal>default</literal> de
esta forma, ya que son <link linkend="reserved">palabras clave
reservadas</link>.
</para>
<note>
<simpara>
Reiterando, al interior de un valor <type>string</type> entre comillas
dobles, es válido no rodear los índices de matriz con comillas, así
que <literal>"$foo[bar]"</literal> es válido. Consulte los ejemplos
anteriores para más detalles sobre el porqué, así como la sección
sobre <link linkend="language.types.string.parsing">procesamiento de
variables en cadenas</link>.
</simpara>
</note>
</sect4>
</sect3>
</sect2>
<sect2 xml:id="language.types.array.casting">
<title>Conversión a matriz</title>
<para>
Para cualquiera de los tipos: <type>integer</type>, <type>float</type>,
<type>string</type>, <type>boolean</type> y <type>resource</type>,
convertir un valor a un <type>array</type> resulta en una matriz con un
solo elemento, con índice 0, y el valor del escalar que fue convertido.
En otras palabras, <literal>(array)$valorEscalar</literal> es exactamente
lo mismo que <literal>array($valorEscalar)</literal>.
</para>
<para>
Si convierte un <type>object</type> a un <type>array</type>, el resultado
es una matriz cuyos elementos son las propiedados del objeto. Las claves
son los nombres de las variables miembro, con algunas excepciones
notables: las variables privadas tienen el nombre de la clase al comienzo
del nombre de la variable; las variables protegidas tienen un caracter
'*' al comienzo del nombre de la variable. Estos valores adicionados al
inicio tienen bytes nulos a los lados. Esto puede resultar en algunos
comportamientos inesperados:
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
class A {
private $A; // Este campo se convertirá en '\0A\0A'
}
class B extends A {
private $A; // Este campo se convertirá en '\0B\0A'
public $AA; // Este campo se convertirá en 'AA'
}
var_dump((array) new B());
?>
]]>
</programlisting>
</informalexample>
<para>
En el ejemplo anterior parecerá que se tienen dos claves llamadas 'AA',
aunque en realidad una de ellas se llama '\0A\0A'.
</para>
<para>
Si convierte un valor &null; a matriz, obtiene una matriz vacía.
</para>
</sect2>
<sect2 xml:id="language.types.array.comparing">
<title>Comparación</title>
<para>
Es posible comparar matrices con la función
<function>array_diff</function> y mediante <link
linkend="language.operators.array">operadores de matriz</link>.
</para>
</sect2>
<sect2 xml:id="language.types.array.examples">
<title>Ejemplos</title>
<para>
El tipo matriz en PHP es bastante versátil. Aquí hay algunos ejempos:
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
// esto
$a = array( 'color' => 'rojo',
'sabor' => 'dulce',
'forma' => 'redonda',
'nombre' => 'manzana',
4 // la clave será 0
);
// es completamente equivalente a
$a['color'] = 'rojo';
$a['sabor'] = 'dulce';
$a['forma'] = 'redonda';
$a['nombre'] = 'manzana';
$a[] = 4; // la clave será 0
$b[] = 'a';
$b[] = 'b';
$b[] = 'c';
// resultará en la matriz array(0 => 'a' , 1 => 'b' , 2 => 'c'),
// o simplemente array('a', 'b', 'c')
?>
]]>
</programlisting>
</informalexample>
<example>
<title>Uso de array()</title>
<programlisting role="php">
<![CDATA[
<?php
// Array como mapa de propiedades
$mapa = array( 'versión' => 4,
'SO' => 'Linux',
'idioma' => 'inglés',
'etiquetas_cortas' => true
);
// claves estrictamente numéricas
$matriz = array( 7,
8,
0,
156,
-10
);
// esto es lo mismo que array(0 => 7, 1 => 8, ...)
$cambios = array( 10, // clave = 0
5 => 6,
3 => 7,
'a' => 4,
11, // clave = 6 (el índice entero máximo era 5)
'8' => 2, // clave = 8 (¡entero!)
'02' => 77, // clave = '02'
0 => 12 // el valor 10 será reemplazado por 12
);
// matriz vacía
$vacio = array();
?>
]]>
<!-- TODO example of
- overwriting keys
- using vars/functions as key/values
- warning about references
-->
</programlisting>
</example>
<example xml:id="language.types.array.examples.loop">
<title>Colección</title>
<programlisting role="php">
<![CDATA[
<?php
$colores = array('rojo', 'azul', 'verde', 'amarillo');
foreach ($colores as $color) {
echo "¿Le gusta el $color?\n";
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
¿Le gusta el rojo?
¿Le gusta el azul?
¿Le gusta el verde?
¿Le gusta el amarillo?
]]>
</screen>
</example>
<para>
Modificar los valores de la matriz directamente es posible a partir de
PHP 5, pasándolos por referencia. Las versiones anteriores necesitan una
solución alternativa:
</para>
<example xml:id="language.types.array.examples.changeloop">
<title>Colección</title>
<programlisting role="php">
<![CDATA[
<?php
// PHP 5
foreach ($colores as &$color) {
$color = strtoupper($color);
}
unset($color); /* se asegura de que escrituras subsiguientes a $color
no modifiquen el último elemento de la matriz */
// Alternativa para versiones anteriores
foreach ($colores as $clave => $color) {
$colores[$clave] = strtoupper($color);
}
print_r($colores);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Array
(
[0] => ROJO
[1] => AZUL
[2] => VERDE
[3] => AMARILLO
)
]]>
</screen>
</example>
<para>
Este ejemplo crea una matriz con base uno.
</para>
<example>
<title>Índice con base 1</title>
<programlisting role="php">
<![CDATA[
<?php
$primercuarto = array(1 => 'Enero', 'Febrero', 'Marzo');
print_r($primercuarto);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Array
(
[1] => 'Enero'
[2] => 'Febrero'
[3] => 'Marzo'
)
]]>
</screen>
</example>
<example>
<title>Llenado de una matriz</title>
<programlisting role="php">
<![CDATA[
<?php
// llenar una matriz con todos los ítems de un directorio
$gestor = opendir('.');
while (false !== ($archivo = readdir($gestor))) {
$archivos[] = $archivo;
}
closedir($gestor);
?>
]]>
</programlisting>
</example>
<para>
Las matrices son ordenadas. El orden puede ser modificado usando varias
funciones de ordenamiento. Vea la sección sobre <link
linkend="ref.array">funciones de matrices</link> para más información.
La función <function>count</function> puede ser usada para contar el
número de elementos en una matriz.
</para>
<example>
<title>Ordenamiento de una matriz</title>
<programlisting role="php">
<![CDATA[
<?php
sort($archivos);
print_r($archivos);
?>
]]>
</programlisting>
</example>
<para>
Dado que el valor de una matriz puede ser cualquier cosa, también puede
ser otra matriz. De esta forma es posible crear matrices recursivas y
multi-dimensionales.
</para>
<example>
<title>Matrices recursivas y multi-dimensionales</title>
<programlisting role="php">
<![CDATA[
<?php
$frutas = array ( "frutas" => array ( "a" => "naranja",
"b" => "banano",
"c" => "manzana"
),
"números" => array ( 1,
2,
3,
4,
5,
6
),
"hoyos" => array ( "primero",
5 => "segundo",
"tercero"
)
);
// Algunos ejemplos que hacen referencia a los valores de la matriz anterior
echo $frutas["hoyos"][5]; // imprime "segundo"
echo $frutas["frutas"]["a"]; // imprime "naranja"
unset($frutas["hoyos"][0]); // elimina "primero"
// Crear una nueva matriz multi-dimensional
$jugos["manzana"]["verde"] = "bien";
?>
]]>
</programlisting>
</example>
<para>
La asignación de matrices siempre involucra la copia de valores. También
quiere decir que el apuntador interno de matriz usado por
<function>current</function> y otras funciones similares es
reestablecido. Use el <link linkend="language.operators">operador de
referencia</link> para copiar una matriz por referencia.
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$matriz1 = array(2, 3);
$matriz2 = $matriz1;
$matriz2[] = 4; // $matriz2 cambia,
// $matriz1 sigue siendo array(2, 3)
$matriz3 = &$matriz1;
$matriz3[] = 4; // ahora $matriz1 y $matriz3 son iguales
?>
]]>
</programlisting>
</informalexample>
</sect2>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
| Navigate in group php.doc.es at sever news.php.net | |
| Previous | Next |
| © No Copyright You are free to use Anything |
Site Maintained by PHP Developer
Powered By PHP Consultants |