mirror of
https://github.com/php/doc-ja.git
synced 2026-03-25 15:42:08 +01:00
git-svn-id: https://svn.php.net/repository/phpdoc/ja/trunk@289448 c90b9560-bf6c-de11-be94-00142212c4b1
103 lines
3.4 KiB
XML
103 lines
3.4 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: a657af6cc4924b8ead92070821ca27d7504593e4 Maintainer: takagi Status: ready -->
|
|
<!-- CREDITS: hirokawa -->
|
|
|
|
<chapter xml:id="com.examples" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
&reftitle.examples;
|
|
|
|
<section xml:id="com.examples.foreach">
|
|
<title>For Each</title>
|
|
<para>
|
|
PHP 5 以降、標準的な COM/OLE IEnumVariant の内容について、
|
|
PHP の &foreach;
|
|
命令を使用した反復処理を行うことができます。分かりやすく言うと、
|
|
これは、VB/ASP のコードで <literal>For Each</literal>
|
|
を使用できる場所には foreach を使用できるということを意味します。
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>ASP における For Each</title>
|
|
<programlisting role="asp">
|
|
<![CDATA[
|
|
<%
|
|
Set domainObject = GetObject("WinNT://Domain")
|
|
For Each obj in domainObject
|
|
Response.Write obj.Name & "<br />"
|
|
Next
|
|
%>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>PHP 4 における while() ... Next()</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$domainObject = new COM("WinNT://Domain");
|
|
while ($obj = $domainObject->Next()) {
|
|
echo $obj->Name . "<br />";
|
|
}
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>PHP 5 における foreach</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$domainObject = new COM("WinNT://Domain");
|
|
foreach ($domainObject as $obj) {
|
|
echo $obj->Name . "<br />";
|
|
}
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
</section>
|
|
|
|
<section xml:id="com.examples.arrays">
|
|
<title>配列と配列形式の COM プロパティ</title>
|
|
<para>
|
|
多くの COM オブジェクトは、プロパティを配列で公開したり
|
|
配列形式を使用してアクセスできるようにしています。
|
|
PHP 4 では、PHP の配列構文を使用してこれらのプロパティに対する読み書きが
|
|
できますが、1 次元の配列のみがサポートされます。多次元のプロパティを
|
|
読み込みたい場合は、プロパティへのアクセスを関数コールに組み込んで
|
|
各パラメータを入れtうの各次元に対応させるという方法が可能ですが、
|
|
そのようなプロパティに対する書き込みの手段はありません。
|
|
</para>
|
|
<para>
|
|
PHP 5 では以下の新機能を用いることで多少ましになりました。
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
多次元配列・複数パラメータを要求する COM プロパティへの
|
|
PHP の配列構文を使用したアクセス。
|
|
書き込みやプロパティの設定にもこの技法が使用可能です。
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
&foreach; 制御構造を使用した
|
|
SafeArrays ("真の" 配列) の値の取得。SafeArrays が自分自身の
|
|
サイズについての情報を含んでいることからこれが可能となります。
|
|
配列形式のプロパティが IEnumVariant を実装している場合は、その
|
|
プロパティに対しても foreach が使用可能です。この項目についての
|
|
詳細な情報は、<xref linkend="com.examples.foreach"/> をごらんください。
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</section>
|
|
|
|
</chapter>
|
|
|
|
|