Skip to content

Commit c56a125

Browse files
committed
[language/*.xml] sync with en
1 parent f867b1f commit c56a125

File tree

6 files changed

+163
-62
lines changed

6 files changed

+163
-62
lines changed

language/functions.xml

Lines changed: 78 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<!-- $Revision$ -->
3-
<!-- EN-Revision: 489d46bc2598784bd3711454ccab8940107cde67 Maintainer: takagi Status: ready -->
3+
<!-- EN-Revision: dd87866772c31671146ff778140dc0955c55005c Maintainer: takagi Status: ready -->
44
<!-- CREDITS: hirokawa,mumumu,jdkfx -->
55
<chapter xml:id="language.functions" xmlns="http://docbook.org/ns/docbook">
66
<title>関数</title>
@@ -9,12 +9,15 @@
99
<title>ユーザー定義関数</title>
1010

1111
<para>
12-
関数は次のような構文で定義されます。
12+
関数は、<literal>function</literal> キーワードと関数の名前、
13+
カンマ(<literal>,</literal>) で区切ったパラメーターのリスト
14+
(空であっても構いません)を括弧で囲み、
15+
関数の本体を波括弧で囲んだものを続けて定義します。
16+
たとえば、以下のようになります:
1317
</para>
14-
<para>
15-
<example>
16-
<title>関数の使用法を説明するための擬似コード</title>
17-
<programlisting role="php">
18+
<example>
19+
<title><literal>foo</literal> という名前の新しい関数を宣言する</title>
20+
<programlisting role="php">
1821
<![CDATA[
1922
<?php
2023
function foo($arg_1, $arg_2, /* ..., */ $arg_n)
@@ -24,12 +27,27 @@ function foo($arg_1, $arg_2, /* ..., */ $arg_n)
2427
}
2528
?>
2629
]]>
27-
</programlisting>
28-
</example>
29-
</para>
30-
30+
</programlisting>
31+
</example>
32+
<note>
33+
<para>
34+
PHP 8.0.0 以降では、
35+
パラメーターのリストの末尾に、カンマを付加できるようになっています:
36+
<informalexample>
37+
<programlisting role="php">
38+
<![CDATA[
39+
<?php
40+
function foo($arg_1, $arg_2,) { }
41+
?>
42+
]]>
43+
</programlisting>
44+
</informalexample>
45+
</para>
46+
</note>
47+
3148
<simpara>
32-
関数の中では、他の関数や <link linkend="language.oop5.basic.class">クラス</link>
49+
関数の本体の中では、
50+
他の関数や <link linkend="language.oop5.basic.class">クラス</link>
3351
定義を含む PHP のあらゆる有効なコードを使用することができます。
3452
</simpara>
3553
<para>
@@ -174,15 +192,19 @@ function recursion($a)
174192
</sect1>
175193

176194
<sect1 xml:id="functions.arguments">
177-
<title>関数の引数</title>
195+
<title>関数のパラメーターと引数</title>
178196

179197
<simpara>
198+
関数のパラメーターは、関数のシグネチャの中で宣言します。
180199
引数のリストにより関数へ情報を渡すことができます。
181200
このリストは、カンマで区切られた式のリストです。
182201
引数の評価は、関数が実際にコールされる前に、
183-
左から右の順番で行われます(<emphasis>先行</emphasis>評価)。
202+
左から右の順番で行われ、
203+
評価された結果が関数のパラメーターに代入されます
204+
(<emphasis>先行</emphasis>評価)。
184205
</simpara>
185206

207+
<!-- Note: this paragraph feels like it should be moved to the syntax part? -->
186208
<para>
187209
PHP は、値渡し(デフォルト)、
188210
<link linkend="functions.arguments.by-reference">リファレンス渡し</link>、
@@ -192,29 +214,33 @@ function recursion($a)
192214
<link linkend="functions.named-arguments">名前付き引数</link>
193215
もサポートしています。
194216
</para>
195-
<para>
196-
<example>
197-
<title>関数に配列を渡す</title>
198-
<programlisting role="php">
217+
<note>
218+
<para>
219+
PHP 7.3.0 以降では、
220+
関数コールの引数リストの末尾にも、カンマを付加できるようになっています:
221+
<informalexample>
222+
<programlisting role="php">
199223
<![CDATA[
200224
<?php
201-
function takes_array($input)
202-
{
203-
echo "$input[0] + $input[1] = ", $input[0]+$input[1];
204-
}
225+
$v = foo(
226+
$arg_1,
227+
$arg_2,
228+
);
205229
?>
206230
]]>
207-
</programlisting>
208-
</example>
209-
</para>
231+
</programlisting>
232+
</informalexample>
233+
</para>
234+
</note>
235+
210236
<para>
211-
PHP 8.0.0 以降では、引数リストの最後にカンマを付けることができます
237+
PHP 8.0.0 以降では、関数のパラメーターリストの最後にカンマをつけることができます
212238
このカンマは無視されます。
213239
これは、引数リストや変数名が長かったりした場合に、
214240
引数を縦に並べるのに便利です。
215241
</para>
216242
<example>
217-
<title>関数の引数リストの最後にカンマを付ける</title>
243+
<title>関数のパラメーターリストの最後にカンマを付ける</title>
218244
<programlisting role="php">
219245
<![CDATA[
220246
<?php
@@ -244,11 +270,11 @@ function takes_many_args(
244270
</simpara>
245271
<para>
246272
関数の引数を常にリファレンス渡しとしたい場合には、関数定義において
247-
アンパサンド(&amp;) を引数名の前に付加することができます
273+
アンパサンド(&amp;) をパラメーター名の前に付加することができます
248274
</para>
249275
<para>
250276
<example>
251-
<title>関数のパラメータのリファレンス渡し</title>
277+
<title>関数の引数のリファレンス渡し</title>
252278
<programlisting role="php">
253279
<![CDATA[
254280
<?php
@@ -265,17 +291,17 @@ echo $str; // 出力は 'This is a string, and something extra.' となりま
265291
</example>
266292
</para>
267293
<para>
268-
リファレンス渡しが想定されているところに、値渡しを行うとエラーになります
294+
リファレンス渡しが想定されているところに、定数式を引数として渡すとエラーになります
269295
</para>
270296
</sect2>
271297

272298
<sect2 xml:id="functions.arguments.default">
273-
<title>デフォルト引数値</title>
299+
<title>デフォルトのパラメーター値</title>
274300

275301
<para>
276302
関数は、変数に代入する記法に似たやり方で、
277-
デフォルト値を引数に定義することができます
278-
デフォルト値は引数が指定されなかった場合に使われますが
303+
デフォルト値をパラメーターに定義することができます
304+
デフォルト値はパラメーターに引数が指定されなかった場合に使われますが
279305
&null; を渡した場合はデフォルト値を代入
280306
<emphasis>しない</emphasis> ことに特に注意して下さい。
281307
</para>
@@ -369,7 +395,7 @@ echo makecoffee(new FancyCoffeeMaker);
369395
</para>
370396
<para>
371397
<example>
372-
<title>関数の引数のデフォルト値の 間違った使用法</title>
398+
<title>関数のパラメーターのデフォルト値の 間違った使用法</title>
373399
<programlisting role="php">
374400
<![CDATA[
375401
<?php
@@ -396,7 +422,7 @@ Fatal error: Uncaught ArgumentCountError: Too few arguments
396422
</para>
397423
<para>
398424
<example>
399-
<title>関数の引数のデフォルト値の 正しい使用法</title>
425+
<title>関数のパラメーターのデフォルト値の 正しい使用法</title>
400426
<programlisting role="php">
401427
<![CDATA[
402428
<?php
@@ -448,19 +474,19 @@ Making a bowl of raspberry natural yogurt.
448474
</para>
449475
<para>
450476
PHP 8.0.0 以降では、
451-
デフォルト値を指定した引数の後に
452-
必須の引数を宣言することは <emphasis>推奨されません</emphasis>。
477+
デフォルト値を指定したパラメーターの後に
478+
必須のパラメーターを宣言することは <emphasis>推奨されません</emphasis>。
453479
なぜなら、そのデフォルト値は絶対に使われないからです。
454480
これは、デフォルト値を削除することで解決できます。
455481
このルールの唯一の例外は、
456-
<code>Type $param = null</code> と書かれた引数です
482+
<code>Type $param = null</code> と書かれたパラメーターです
457483
&null; をデフォルトにすることは、
458484
型が暗黙のうちに nullable であることを示しています。
459485
この使い方はPHP 8.4.0で非推奨となり、代わりに明示的な
460486
<link linkend="language.types.declarations.nullable">nullable 型</link>
461487
を使用する必要があります。
462488
<example>
463-
<title>デフォルト値を指定した引数は、必須の引数の後に宣言する</title>
489+
<title>デフォルト値を指定したパラメーターは、必須のパラメーターの後に宣言する</title>
464490
<programlisting role="php">
465491
<![CDATA[
466492
<?php
@@ -487,7 +513,7 @@ Making a bowl of raspberry natural yogurt.
487513
</note>
488514
<note>
489515
<simpara>
490-
リファレンス渡しの引数にもデフォルト値を指定できます
516+
リファレンス渡しのパラメーターにもデフォルト値を指定できます
491517
</simpara>
492518
</note>
493519
</sect2>
@@ -500,7 +526,7 @@ Making a bowl of raspberry natural yogurt.
500526
</simpara>
501527

502528
<para>
503-
引数リストに
529+
パラメーターリストに
504530
<literal>...</literal> トークンを含めることで、
505531
その関数が可変長の引数を受け取ることを示せます。
506532
引数は、指定した変数に配列として渡されます:
@@ -561,7 +587,7 @@ echo add(...$a);
561587
</para>
562588

563589
<para>
564-
通常の引数を、<literal>...</literal> の前に指定することもできます。
590+
通常のパラメーターを、<literal>...</literal> の前に指定することもできます。
565591
この場合は、通常の引数リストにマッチしなかったのこりの引数が
566592
<literal>...</literal> による配列に追加されます。
567593
</para>
@@ -693,20 +719,22 @@ htmlspecialchars($string, ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, 'UTF-8', fa
693719
</example>
694720

695721
<para>
696-
同じ引数を複数回渡すと、Error 例外が発生します。
722+
同じ名前の引数を複数回渡すと、<classname>Error</classname> 例外が発生します。
697723
</para>
698724

699725
<example>
700-
<title>同じ引数を複数回渡すと、Error がスローされる</title>
726+
<title>同じ名前の引数を複数回渡すと、Error がスローされる</title>
701727
<programlisting role="php">
702728
<![CDATA[
703729
<?php
704730
function foo($param) { ... }
705731
706732
foo(param: 1, param: 2);
707733
// Error: Named parameter $param overwrites previous argument
734+
708735
foo(1, param: 2);
709736
// Error: Named parameter $param overwrites previous argument
737+
710738
?>
711739
]]>
712740
</programlisting>
@@ -1409,6 +1437,13 @@ Warning: Cannot bind an instance to a static closure in %s on line %d
14091437
</row>
14101438
</thead>
14111439
<tbody>
1440+
<row>
1441+
<entry>8.3.0</entry>
1442+
<entry>
1443+
<link linkend="language.oop5.magic">マジックメソッド</link>
1444+
経由で作られたクロージャも、名前付き引数を受け入れるようになりました。
1445+
</entry>
1446+
</row>
14121447
<row>
14131448
<entry>7.1.0</entry>
14141449
<entry>

language/namespaces.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<!-- $Revision$ -->
3-
<!-- EN-Revision: 874f7c1266d4e4f2e1e6c79b5fb48b590caa1197 Maintainer: takagi Status: ready -->
3+
<!-- EN-Revision: 1651836ff309efd14a795eff44ee51455f66c7d3 Maintainer: takagi Status: ready -->
44
<!-- CREDITS: mumumu -->
55

66
<chapter xml:id="language.namespaces" xmlns="http://docbook.org/ns/docbook"
@@ -95,7 +95,7 @@ echo constant($d); // "名前空間および動的言語機能" を参照くだ
9595
<?phpdoc print-version-for="namespaces"?>
9696
<para>
9797
PHP のコードならなんでも名前空間に含めることができますが、
98-
実際に名前空間の影響を受けるのはクラス (抽象クラスやトレイトを含む) とインターフェイス、関数、そして定数だけです。
98+
実際に名前空間の影響を受けるのはクラス (抽象クラスやトレイト、列挙型(Enum) を含む) とインターフェイス、関数、そして定数だけです。
9999
</para>
100100
<para>
101101
名前空間を宣言するには、キーワード <literal>namespace</literal>

language/oop5.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<!-- EN-Revision: f9dabdea3f92ea77cf5077020a3e945951fdc9db Maintainer: hirokawa Status: ready -->
2+
<!-- $Revision$ -->
3+
<!-- EN-Revision: c1f37a6c270aadbbb3da56a3973ffd62197adf2b Maintainer: hirokawa Status: ready -->
34
<!-- CREDITS: mumumu -->
45

5-
<chapter xml:id="language.oop5" xmlns="http://docbook.org/ns/docbook">
6+
<chapter xml:id="language.oop5" xmlns="http://docbook.org/ns/docbook" annotations="interactive">
67
<title>クラスとオブジェクト</title>
78

89
<sect1 xml:id="oop5.intro">

language/references.xml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<!-- $Revision$ -->
3-
<!-- EN-Revision: d58ee8eaaa7f716c51f66f5f1058ab3c42376d98 Maintainer: hirokawa Status: ready -->
3+
<!-- EN-Revision: 9463e5b660c4883b91a30f07ff68731bbcc48346 Maintainer: hirokawa Status: ready -->
44
<!-- CREDITS: takagi,mumumu -->
55
<chapter xml:id="language.references" xmlns="http://docbook.org/ns/docbook">
66
<title>リファレンスの説明</title>
@@ -490,12 +490,28 @@ function &collector()
490490
}
491491
492492
$collection = &collector();
493+
// $collection は、関数内の static な配列を指すリファレンスになりました。
494+
493495
$collection[] = 'foo';
494496
497+
print_r(collector());
498+
// Array
499+
// (
500+
// [0] => foo
501+
// )
502+
495503
?>
496504
]]>
497505
</programlisting>
498506
</informalexample>
507+
<note>
508+
<simpara>
509+
<code>$collection = collector();</code> のような形で、
510+
<literal>&amp;</literal> を使わずに代入が行われると、
511+
変数 <varname>$collection</varname> は値のコピーを受け取ります。
512+
関数から返されたリファレンスではありません。
513+
</simpara>
514+
</note>
499515
返されたリファレンスを、リファレンスを要求する別の関数に渡すには、
500516
この構文を使います。
501517
<informalexample>

language/types.xml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<!-- $Revision$ -->
3-
<!-- EN-Revision: f908fff129bcd8ec1605658e06457cb04e5b2b51 Maintainer: mumumu Status: ready -->
4-
<chapter xml:id="language.types" xmlns="http://docbook.org/ns/docbook">
3+
<!-- EN-Revision: e587d0655e426f97b3fcb431453da5030e743b23 Maintainer: mumumu Status: ready -->
4+
<chapter xml:id="language.types" xmlns="http://docbook.org/ns/docbook" annotations="interactive">
55
<title>型</title>
66

77
<sect1 xml:id="language.types.intro">
@@ -69,7 +69,8 @@
6969
<!-- TODO When PhD support is there: <function>is_<replaceable>type</replaceable></function> -->
7070
<literal>is_<replaceable>type</replaceable></literal>
7171
関数を代わりに使用してください。
72-
<informalexample>
72+
<example>
73+
<title>異なる型</title>
7374
<programlisting role="php">
7475
<![CDATA[
7576
<?php
@@ -102,7 +103,7 @@ string
102103
int(16)
103104
]]>
104105
</screen>
105-
</informalexample>
106+
</example>
106107
</para>
107108
<note>
108109
<simpara>

0 commit comments

Comments
 (0)