Funciones de COM
PHP Manual

VARIANT

(PHP 4 >= 4.1.0, PHP 5)

VARIANTLa clase VARIANT

$vVar = new VARIANT($var)

Descripción

VARIANT es el equivalente COM de zval de PHP; es una estructura que puede contener un valor con un rango de diferentes tipos posibles. La clase VARIANT porporcionada por la extensión COM permite tener más control sobre la forma en que PHP pasa valores a y desde COM.

Métodos

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

Constructor de la clase VARIANT. Parámetros:

value
valor inicial. si se omite o se establece a NULL se crea un objeto VT_EMPTY.
type
especifica el tipo de contenido del objeto VARIANT. Los valores posibles son uno de los VT_XXX Constantes predefinidas. En versiones de PHP anteriores a PHP 5 se podría forzar a PHP a pasar un objeto variante por referencia usando OR entre VT_BYREF y type. En PHP 5, esta forma no está soportada; en su lugar, PHP 5 puede detectar parámetros pasados por referencia automáticamente; incluso no necesitan ser pasados como objetos VARIANT. Consulte la biblioteca MSDN para información adicional sobre el tipo VARIANT.
codepage
especifica la página de código que se usa para convertir cadenas a unicode. Véase el parámetro con el mismo nombre en la clase COM para más información.

Las versiones de PHP anteriores a PHP 5 definen un número de (no documentado) propiedades virtuales para instancias de la clase VARIANT; todas estas propiedades han sido eliminadas en PHP 5 a favor de su sintaxis más natural; estas diferencias se remarcan mejor con un ejemplo:

Example #1 Ejemplo de Variant, estilo PHP 4.x

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

Example #2 Ejemplo de Variant, estilo 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 de este cambio es que, internamente, la extensión COM ve VARIANT, las clases COM y DOTNET son la misma cosa, y la filosofía de diseño de estas clases es que todas los accesos a propiedades y miembros son pasados a través de COM sin interferencia. La nueva sintaxis es más natural y menos costosa, y la mayoría de las propiedades virtuales eliminadas no tienen sentido en un contexto de PHP en ningún caso.

Note:

PHP 5 toma una aproximación mucho más sencilla para manejar VARIANTs; cuando se devuelve un valor o se trae una propiedad variante, la variante es convertida a un valor de PHP sólo cuando es un mapeado directo entre los tipos que no resultarían en una pérdida de información. En los demás casos, el resultado es devuelto como una instancia de la clase VARIANT. Se puede forzar a PHP a convertir o evaluar la variante como un tipo nativo de PHP usando un operador cast explícitamente, o implícitamente converitirla (cast) a una cadena usando print(). Se puede usar el amplio rango de funciones de variantes para realizar operaciones aritméticas sobre variantes sin forzar una conversión o tener riesgo de perder información.

Véase también variant_get_type().


Funciones de COM
PHP Manual