1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-25 07:52:21 +01:00
Files
archived-doc-es/reference/com/variant.xml
Marta Regina Cano Jiménez ee88646e26 Traducción + Actualización addpatern
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@335810 c90b9560-bf6c-de11-be94-00142212c4b1
2015-01-27 14:01:56 +00:00

156 lines
5.6 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 84b8fca68fc762fefe85acde180a38b2e77a28b9 Maintainer: regiemix Status: ready -->
<!-- Reviewed: no -->
<phpdoc:classref xmlns:phpdoc="http://php.net/ns/phpdoc" xml:id="class.variant" xmlns="http://docbook.org/ns/docbook">
<titleabbrev>VARIANT</titleabbrev>
<title>La clase VARIANT</title>
<partintro>
<section xml:id="class.variant.class">
<title>Descripción</title>
<simpara>
La clase VARIANT es un equivalente de COM para el PHP zval; es una estructura que
puede contener un valor con un rango de diferentes tipos posibles. La clase VARIANT
suministrada por la extensión COM, permite tener un mayor control sobre
el modo en que PHP pasa los valores hacia y desde COM.
</simpara>
<simpara>
<literal>$vVar = new VARIANT($var)</literal>
</simpara>
</section>
<section xml:id="variant.variant">
<title>Métodos</title>
<methodsynopsis>
<methodname>VARIANT::VARIANT</methodname>
<methodparam choice="opt"><type>mixed</type><parameter>value</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>type</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>codepage</parameter></methodparam>
</methodsynopsis>
<para>
constructor de clase VARIANT. Parámetros:
<variablelist>
<varlistentry><term>value</term>
<listitem>
<simpara>
valor inicial. si se omite, o se le da valor &null; se creará un objeto vacío VT_EMPTY.
</simpara>
</listitem>
</varlistentry>
<varlistentry><term>type</term>
<listitem>
<simpara>
especifica el tipo de objeto VARIANT contenido. Los valores posibles son
una de las constantes <constant>VT_XXX</constant> <xref
linkend="com.constants"/>.
</simpara>
<simpara>
En versiones PHP anteriores a PHP 5, se puede forzar a PHP para que pase un objeto
VARIANT por referencia, combinando <constant>VT_BYREF</constant> con el operador OR y
el parámetro <parameter>type</parameter>. En PHP 5, este hack no está
soportado; en lugar de eso, PHP 5 puede detectar los parámetros pasados por referencia
automáticamente; ni siquiera es necesario pasarlos como objetos VARIANT.
</simpara>
<simpara>
Consultar la biblioteca <acronym>MSDN</acronym> para información adicional
sobre el tipo VARIANT.
</simpara>
</listitem>
</varlistentry>
<varlistentry><term>codepage</term>
<listitem>
<simpara>
especifica la página de códigos que se utilizará para convertir los strings a
unicode. Ver el parámetro del mismo nombre en la clase
<xref linkend="class.com"/> para más información.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
Las versiones PHP anteriores a PHP 5 definen un número de propiedades virtuales (no documentadas)
para las instancias de la clase VARIANT; estas propiedades han sido eliminadas en
PHP 5 en favor de una sintaxis más natural; estas diferencias se ilustran
mejor con el siguiente ejemplo:
</para>
<para>
<example xml:id="com.variant.example.php4">
<title>Ejemplo de una clase VARIANT, utilizada en PHP 4.x</title>
<programlisting role="php">
<![CDATA[
<?php
$v = new VARIANT(42);
print "El tipo es " . $v->type . "<br/>";
print "El valor es " . $v->value . "<br/>";
?>
]]>
</programlisting>
</example>
</para>
<para>
<example xml:id="com.variant.example.php5">
<title>Ejemplo de una clase VARIANT, utilizada en PHP 5</title>
<programlisting role="php">
<![CDATA[
<?php
$v = new VARIANT(42);
print "El tipo es " . variant_get_type($v) . "<br/>";
print "El valor es " . $v . "<br/>";
?>
]]>
</programlisting>
</example>
</para>
<para>
La razón para este cambio es que, internamente, la extensión COM ve a las clases
VARIANT, COM y DOTNET como la misma cosa, y la filosofía de diseño
para estas clases es que todos los accesos a las propiedades y los miembros se
transmiten a través de COM sin ninguna interferencia. La nueva sintaxis es más
natural y requiere menos esfuerzo, y muchas de las propiedades virtuales eliminadas ya
no tienen sentido en un contexto PHP.
</para>
<note>
<para>
PHP 5 toma una aproximación mucho más simple en la gestión de VARIANTs; cuando se devuelve
un valor o se carga una propiedad VARIANT, ésta se convierte en un valor
PHP únicamente cuando hay un mapeo directo entre los tipos de tal forma
que no se pierda información. En todos los otros casos, el resultado es
devuelto como una instancia de la clase VARIANT. Se puede forzar a PHP para
convertir o evaluar la clase VARIANT como un tipo nativo PHP utilizando un operador
para clasificarla explícitamente, o implícitamente como un string
con la función <function>print</function>. Es posible utilizar el amplio rango de funciones
VARIANT para realizar operaciones aritméticas en VARIANTS sin forzar una
conversión o arriesgarse a una pérdida de información.
</para>
</note>
<para>
Ver también la función <function>variant_get_type</function>.
</para>
</section>
</partintro>
</phpdoc:classref>
<!-- 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:"~/.phpdoc/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
-->