1
1
<?xml version =" 1.0" encoding =" utf-8" ?>
2
2
<!-- $Revision$ -->
3
- <!-- EN-Revision: 2bd9a67c8c6c5961189f868364837a5c3ba7e063 Maintainer: takagi Status: ready -->
4
-
3
+ <!-- EN-Revision: c1f37a6c270aadbbb3da56a3973ffd62197adf2b Maintainer: takagi Status: ready -->
5
4
<refentry xml : id =" domxpath.registerphpfunctions" xmlns =" http://docbook.org/ns/docbook" xmlns : xlink =" http://www.w3.org/1999/xlink" >
6
5
<refnamediv >
7
6
<refname >DOMXPath::registerPhpFunctions</refname >
49
48
</para >
50
49
</refsect1 >
51
50
51
+ <refsect1 role =" errors" xml : id =" domxpath.registerphpfunctions..errors" >
52
+ &reftitle.errors;
53
+ <itemizedlist >
54
+ <listitem >
55
+ <simpara >
56
+ コールバック名が正しくない場合、
57
+ <exceptionname >ValueError</exceptionname > がスローされます。
58
+ </simpara >
59
+ </listitem >
60
+ &dom.errors.compliant.common;
61
+ <listitem >
62
+ <simpara >
63
+ 指定されたコールバックが callable でない場合、
64
+ <exceptionname >TypeError</exceptionname > がスローされます。
65
+ </simpara >
66
+ </listitem >
67
+ </itemizedlist >
68
+ </refsect1 >
69
+
52
70
<refsect1 role =" changelog" >
53
71
&reftitle.changelog;
54
72
<informaltable >
60
78
</row >
61
79
</thead >
62
80
<tbody >
81
+ <row xml : id =" domxpath.registerphpfunctions..changelog.errors" >
82
+ <entry >8.4.0</entry >
83
+ <entry >
84
+ コールバック名が正しくない場合、
85
+ <exceptionname >ValueError</exceptionname >
86
+ がスローされるようになりました。
87
+ callable でない値を指定した場合、
88
+ <exceptionname >TypeError</exceptionname >
89
+ がスローされるようになりました。
90
+ </entry >
91
+ </row >
63
92
<row >
64
93
<entry >8.4.0</entry >
65
94
<entry >
71
100
</tgroup >
72
101
</informaltable >
73
102
</refsect1 >
74
-
103
+
75
104
<refsect1 role =" examples" >
76
105
&reftitle.examples;
77
106
<para >
109
138
<![CDATA[
110
139
<?php
111
140
$doc = new DOMDocument;
112
- $doc->load('book.xml');
141
+ $doc->load('examples/ book-simple .xml');
113
142
114
143
$xpath = new DOMXPath($doc);
115
144
116
145
// 名前空間 php: を登録します (必須)
117
146
$xpath->registerNamespace("php", "http://php.net/xpath");
118
147
119
148
// PHP の関数を登録します (無制限)
120
- $xpath->registerPHPFunctions ();
149
+ $xpath->registerPhpFunctions ();
121
150
122
151
// substr 関数を book の title に適用します
123
152
$nodes = $xpath->query('//book[php:functionString("substr", title, 0, 3) = "PHP"]');
@@ -149,15 +178,15 @@ PHP Secrets by Jenny Smythe
149
178
<![CDATA[
150
179
<?php
151
180
$doc = new DOMDocument;
152
- $doc->load('book.xml');
181
+ $doc->load('examples/ book-simple .xml');
153
182
154
183
$xpath = new DOMXPath($doc);
155
184
156
185
// 名前空間 php: を登録します (必須)
157
186
$xpath->registerNamespace("php", "http://php.net/xpath");
158
187
159
188
// PHP の関数を登録します (has_multiple 限定)
160
- $xpath->registerPHPFunctions ("has_multiple");
189
+ $xpath->registerPhpFunctions ("has_multiple");
161
190
162
191
function has_multiple($nodes) {
163
192
// author が複数ある場合に true を返します
@@ -176,7 +205,7 @@ foreach ($books as $book) {
176
205
</programlisting >
177
206
&example.outputs.similar;
178
207
<screen >
179
- <![CDATA[
208
+ <![CDATA[
180
209
Books with multiple authors:
181
210
PHP Basics
182
211
]]>
@@ -185,19 +214,24 @@ PHP Basics
185
214
</para >
186
215
<para >
187
216
<example >
188
- <title ><methodname >DOMXPath::registerPHPFunctions </methodname > with a <type >callable</type ></title >
217
+ <title ><methodname >DOMXPath::registerPhpFunctions </methodname > と <type >callable</type > の例 </title >
189
218
<programlisting role =" php" >
190
- <![CDATA[
219
+ <![CDATA[
191
220
<?php
192
221
$doc = new DOMDocument;
193
- $doc->load('book.xml');
222
+ $doc->load('examples/book-simple.xml');
223
+
194
224
$xpath = new DOMXPath($doc);
225
+
195
226
// 名前空間 php: を登録します (必須)
196
227
$xpath->registerNamespace("php", "http://php.net/xpath");
228
+
197
229
// PHP の関数を登録します (has_multiple 限定)
198
- $xpath->registerPHPFunctions(["has_multiple" => fn ($nodes) => count($nodes) > 1]);
230
+ $xpath->registerPhpFunctions(["has_multiple" => fn ($nodes) => count($nodes) > 1]);
231
+
199
232
// 複数の author がいる book のみを取り出します
200
233
$books = $xpath->query('//book[php:function("has_multiple", author)]');
234
+
201
235
echo "Books with multiple authors:\n";
202
236
foreach ($books as $book) {
203
237
echo $book->getElementsByTagName("title")->item(0)->nodeValue . "\n";
@@ -216,7 +250,7 @@ PHP Basics
216
250
</example >
217
251
</para >
218
252
</refsect1 >
219
-
253
+
220
254
<refsect1 role =" seealso" >
221
255
&reftitle.seealso;
222
256
<para >
0 commit comments