php-doc-en/reference/com/examples.xml
Hannes Magnusson 6c1cc27530 MFB: Upgrade to the new-reference-structure
- Moved the intro from reference.xml to book.xml
	- Change the intro ID to intro.<extname>
	- Moved from reference.xml
		- To setup.xml
			- The requirements section
			- The installation section
			- The configuration entity
			- The resources section
		- To error-handling.xml (<chapter>)
			- The com.exceptions section (changed the id to com.error-handling)
		- To examples.xml (<chapter>
			- The com.foreach section (changed the id to com.examples.foreach)
			- The com.arrays section (cahnged the id to com.examples.arrays)
	- Changes the constants section to be an <appendix>


git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@248155 c90b9560-bf6c-de11-be94-00142212c4b1
2007-12-13 17:47:35 +00:00

97 lines
No EOL
2.8 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 1.2 $ -->
<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>
Starting with PHP 5, you may use PHP's own <link
linkend="control-structures.foreach">foreach</link> statement to iterate
over the contents of a standard COM/OLE IEnumVariant. In laymans terms,
this means that you can use foreach in places where you would have used
<literal>For Each</literal> in VB/ASP code.
</para>
<para>
<example>
<title>For Each in ASP</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>while() ... Next() in PHP 4</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>foreach in PHP 5</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>Arrays and Array-style COM properties</title>
<para>
Many COM objects expose their properties as arrays, or using array-style
access. In PHP 4, you may use PHP array syntax to read/write such a
property, but only a single dimension is allowed. If you want to read a
multi-dimensional property, you could instead make the property access
into a function call, with each parameter representing each dimension of
the array access, but there is no way to write to such a property.
</para>
<para>
PHP 5 introduces the following new features to make your life easier:
<itemizedlist>
<listitem>
<para>
Access multi-dimensional arrays, or COM properties that require
multiple parameters using PHP array syntax. You can also write or set
properties using this technique.
</para>
</listitem>
<listitem>
<para>
Iterate SafeArrays ("true" arrays) using the <xref
linkend="control-structures.foreach"/> control structure. This works
because SafeArrays include information about their size. If an
array-style property implements IEnumVariant then you can also use
foreach for that property too; take a look at <xref
linkend="com.examples.foreach"/> for more information on this topic.
</para>
</listitem>
</itemizedlist>
</para>
</section>
</chapter>