COM
PHP Manual

La clase VARIANT

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

Descripción

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.

$vVar = new VARIANT($var)

Métodos

VARIANT::VARIANT ([ mixed $value [, int $type [, int $codepage ]]] )

constructor de clase VARIANT. Parámetros:

value
valor inicial. si se omite, o se le da valor NULL se creará un objeto vacío VT_EMPTY.
type
especifica el tipo de objeto VARIANT contenido. Los valores posibles son una de las constantes VT_XXX Constantes predefinidas. En versiones PHP anteriores a PHP 5, se puede forzar a PHP para que pase un objeto VARIANT por referencia, combinando VT_BYREF con el operador OR y el parámetro type. 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. Consultar la biblioteca MSDN para información adicional sobre el tipo VARIANT.
codepage
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 COM para más información.

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:

Ejemplo #1 Ejemplo de una clase VARIANT, utilizada en PHP 4.x

<?php
$v 
= new VARIANT(42);
print 
"El tipo es " $v->type "<br/>";
print 
"El valor es " $v->value "<br/>";
?>

Ejemplo #2 Ejemplo de una clase VARIANT, utilizada en PHP 5

<?php
$v 
= new VARIANT(42);
print 
"El tipo es " variant_get_type($v) . "<br/>";
print 
"El valor es " $v "<br/>";
?>

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.

Nota:

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 print. 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.

Ver también la función variant_get_type().


COM
PHP Manual