mirror of
https://github.com/php/doc-ja.git
synced 2026-04-25 17:08:10 +02:00
85184370c2
git-svn-id: https://svn.php.net/repository/phpdoc/ja/trunk@325220 c90b9560-bf6c-de11-be94-00142212c4b1
159 lines
6.2 KiB
XML
159 lines
6.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: 84b8fca68fc762fefe85acde180a38b2e77a28b9 Maintainer: hirokawa Status: ready -->
|
|
<!-- CREDITS: takagi -->
|
|
<phpdoc:classref xmlns:phpdoc="http://php.net/ns/phpdoc" xml:id="class.variant" xmlns="http://docbook.org/ns/docbook">
|
|
<titleabbrev>VARIANT</titleabbrev>
|
|
<title>VARIANT クラス</title>
|
|
<partintro>
|
|
|
|
<section xml:id="class.variant.class">
|
|
<title>説明</title>
|
|
<simpara>
|
|
VARIANT は、PHP の zval と同等の COM の値です。構造体形式になっており、
|
|
異なる型の値を含めることが可能です。COM 拡張モジュールが提供する
|
|
VARIANT クラスによって、PHP と COM の間のデータの受け渡しを制御できるように
|
|
なります。
|
|
</simpara>
|
|
<simpara>
|
|
<literal>$vVar = new VARIANT($var)</literal>
|
|
</simpara>
|
|
</section>
|
|
<section xml:id="variant.variant">
|
|
<title>メソッド</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>
|
|
VARIANT クラスのコンストラクタ。パラメータは以下のとおりです。
|
|
<variablelist>
|
|
<varlistentry><term>value</term>
|
|
<listitem>
|
|
<simpara>
|
|
初期値。省略したり &null; を設定した場合には、VT_EMPTY
|
|
オブジェクトが作成されます。
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry><term>type</term>
|
|
<listitem>
|
|
<simpara>
|
|
VARIANT オブジェクトの content 型を指定します。使用可能な値は、
|
|
<constant>VT_XXX</constant> <xref linkend="com.constants"/>
|
|
のうちのひとつです。
|
|
</simpara>
|
|
<simpara>
|
|
PHP 5 より前のバージョンでは、<parameter>type</parameter> に
|
|
<constant>VT_BYREF</constant> を加えることで PHP から variant
|
|
オブジェクトに参照渡しをさせることが可能でした。PHP 5 では、
|
|
この方法はサポートされていません。そのかわりに、PHP 5 では
|
|
パラメータが参照渡しされた場合にそれを自動的に認識します。
|
|
VARIANT オブジェクトとして渡す必要さえありません。
|
|
</simpara>
|
|
<simpara>
|
|
VARIANT 型についてのその他の情報については、<acronym>MSDN</acronym>
|
|
ライブラリを参照ください。
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry><term>codepage</term>
|
|
<listitem>
|
|
<simpara>
|
|
文字列を unicode に変換する際に使用するコードページを指定します。
|
|
詳細な情報については、
|
|
<xref linkend="class.com"/> クラスの同名のパラメータを参照ください。
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
<para>
|
|
PHP 5 より前のバージョンでは、VARIANT クラスのインスタンスには
|
|
多くの(ドキュメント化されていない)仮想プロパティが存在します。
|
|
これらのプロパティは PHP 5 ですべて削除され、かわりにより自然な構文で
|
|
アクセスできるようになっています。これらの違いについて、以下の例で
|
|
説明します。
|
|
</para>
|
|
<para>
|
|
<example xml:id="com.variant.example.php4">
|
|
<title>PHP 4.x 形式 での Variant の例</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$v = new VARIANT(42);
|
|
print "The type is " . $v->type . "<br/>";
|
|
print "The value is " . $v->value . "<br/>";
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example xml:id="com.variant.example.php5">
|
|
<title>PHP 5 形式での Variant の例</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$v = new VARIANT(42);
|
|
print "The type is " . variant_get_type($v) . "<br/>";
|
|
print "The value is " . $v . "<br/>";
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
このように変更された理由は、内部的には、COM 拡張モジュールが
|
|
VARIANT、COM および DOTNET クラスを同一のものとして扱い、これらの
|
|
クラスのプロパティやメンバへのアクセスは(何のインターフェイスも
|
|
経由せず)直接 COM とやり取りを行うようにするという設計思想によるものです。
|
|
新しい構文は、より自然でより手軽です。また、削除された仮想プロパティの
|
|
ほとんどは、PHP のコンテキストにおいては何の意味も持たないものでした。
|
|
</para>
|
|
<note>
|
|
<para>
|
|
PHP 5 では、VARIANT を扱うためのよりシンプルな手段をとっています。
|
|
値を返したり variant プロパティを取得したりする際に variant が
|
|
PHP の値に変換されるのは、情報を失うことなく型変換ができる型が
|
|
存在する場合に限られます。それ以外の場合は、結果は VARIANT クラスの
|
|
インスタンスとして返されます。明示的にキャスト演算子を指定することで
|
|
variant を PHP のネイティブ型として扱うことが可能です。また、
|
|
<function>print</function>
|
|
を使用すると、暗黙のうちに値が文字列に
|
|
変換されます。variant に対する計算のためのさまざまな関数が用意されており、
|
|
型変換でデータを失うリスクを犯さなくてもそのままの形式で計算を
|
|
行うことが可能です。
|
|
</para>
|
|
</note>
|
|
<para>
|
|
<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
|
|
-->
|