Files
doc-fr/reference/com/functions/class.variant.xml
Damien Seguy 14878dfc5d minor spelling mistakes
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@260145 c90b9560-bf6c-de11-be94-00142212c4b1
2008-05-22 22:54:34 +00:00

158 lines
5.4 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.20 $ -->
<!-- EN-Revision: 1.7 Maintainer: yannick Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="class.variant" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>VARIANT</refname>
<refpurpose>classe VARIANT</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>$vVar = new <classname>VARIANT</classname>($var)</synopsis>
</refsynopsisdiv>
<refsect1 xml:id="class.variant.class">
&reftitle.description;
<simpara>
Le VARIANT est un équivalent de COM pour PHP zval ; c'est une structure qui peut contenir
une valeur avec un intervalle de types possibles. La classe VARIANT fournie par
l'extension COM vous permet d'avoir plus de contrôle sur ce que PHP
envoie et reçoit de COM.
</simpara>
</refsect1>
<refsect1 xml:id="class.variant.constructor">
<title>Méthodes</title>
<methodsynopsis>
<type>object</type><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>
Constructeur VARIANT. Paramètres:
<variablelist>
<varlistentry><term>value</term>
<listitem>
<simpara>
valeur initiale. Si omis, un objet VT_EMPTY sera créé.
</simpara>
</listitem>
</varlistentry>
<varlistentry><term>type</term>
<listitem>
<simpara>
spécifie le type d'objet VARIANT contenu. Les valeurs possibles sont une des
constantes <constant>VT_XXX</constant> <xref linkend="com.constants"/>.
</simpara>
<simpara>
Dans les versions antérieures à PHP 5, vous pouvez forcer PHP à
passer un objet VARIANT par référence en combinant <constant>VT_BYREF</constant>
avec l'opérateur OR et le paramètre <parameter>type</parameter>. En PHP 5,
ce hack n'est pas supporté ; en lieu et place, PHP 5 peut détecter
les paramètres passés par référence automatiquement ; ils n'ont pas
à être passés comme des objets VARIANT.
</simpara>
<simpara>
Consultez la bibliothèque <acronym>MSDN</acronym> pour plus de détails.
</simpara>
</listitem>
</varlistentry>
<varlistentry><term>codepage</term>
<listitem>
<simpara>
spécifie le code qui est utilisé pour transformer les chaînes de
caractères PHP en chaînes unicode, et vice-versa. Voir le paramètre du même nom
dans la <xref linkend="class.com"/> classe pour plus d'informations.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
Les versions antérieures à PHP 5 définissent un nombre de propriétés virtuelles
(non-documenté) pour les instances de classe VARIANT ; ces propriétés ont toutes
été supprimées de PHP 5 en faveur d'une syntaxe plus naturelle ; ces différences
sont bien illustrées par cet exemple :
</para>
<para>
<example xml:id="com.variant.example.php4">
<title>Exemple d'une classe VARIANT, comme utilisé en PHP 4.x</title>
<programlisting role="php">
<![CDATA[
<?php
$v = new VARIANT(42);
echo 'The type is ' . $v->type . '<br />';
echo 'The value is ' . $v->value . '<br />';
?>
]]>
</programlisting>
</example>
</para>
<para>
<example xml:id="com.variant.example.php5">
<title>Exemple d'une classe VARIANT, comme utilisé en PHP 5</title>
<programlisting role="php">
<![CDATA[
<?php
$v = new VARIANT(42);
echo 'The type is ' . variant_get_type($v) . '<br />';
echo 'The value is ' . $v . '<br />';
?>
]]>
</programlisting>
</example>
</para>
<para>
Les raisons de ces changements sont que, en interne, l'extension COM voit
les classes VARIANT, CM et DOTNET comme étant la même chose,
et l'esprit pour ces classes est que tous les accès aux propriétés et aux méthodes
sont transmis à COM sans interférence. La nouvelle syntaxe est plus naturelle
et demande moins d'efforts et la plupart des propriétés virtuelles supprimées n'ont
plus aucun sens dans ce contexte.
</para>
<note>
<para>
PHP 5 prend une approche plus simple pour gérer les classes VARIANT ;
lorsqu'il retourne une valeur d'une propriété VARIANT, elle est convertie en une valeur
PHP seulement s'il y a un mappage direct entre les types sans perdre aucune information.
Dans tous les autres cas, le résultat est retourné comme une instance de la classe VARIANT.
Vous pouvez forcer PHP à convertir ou à évaluer la classe VARIANT comme un type natif
de PHP en utilisant explicitement un opérateur de transtypage, ou implicitement transtyper
en une chaîne pour l'afficher. Vous pouvez utiliser l'éventail de fonctions pour
réaliser des opérations arithmétiques sur les classes VARIANT sans forcer des conversions
ou bien risquer de perdre des données.
</para>
</note>
<para>
Voir aussi
<function>variant_get_type</function>.
</para>
</refsect1>
</refentry>
<!-- 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
-->