Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions language/oop5/anonymous.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: d6f54016d62904cfd8200604aadd5e3f0d9bad97 Maintainer: takagi Status: ready -->
<!-- EN-Revision: dff848b17dafaabfb7662ffb5fecfcb04e3b771d Maintainer: takagi Status: ready -->

<sect1 xml:id="language.oop5.anonymous" xmlns="http://docbook.org/ns/docbook">
<title>無名クラス</title>
Expand Down Expand Up @@ -155,10 +155,10 @@ if (get_class(anonymous_class()) === get_class(anonymous_class())) {
</informalexample>

<note>
<para>
<simpara>
無名クラスには内部的な名前が付けられていることに注意しましょう。これは次の例で確認できます。
ただこれは細部の実装上の話なので、この名前に依存するコードを書いてはいけません。
</para>
</simpara>
<informalexample>
<programlisting role="php">
<![CDATA[
Expand Down
10 changes: 5 additions & 5 deletions language/oop5/autoload.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: c1f37a6c270aadbbb3da56a3973ffd62197adf2b Maintainer: hirokawa Status: ready -->
<!-- EN-Revision: dff848b17dafaabfb7662ffb5fecfcb04e3b771d Maintainer: hirokawa Status: ready -->
<!-- Credits: mumumu -->

<sect1 xml:id="language.oop5.autoload" xmlns="http://docbook.org/ns/docbook">
Expand All @@ -11,27 +11,27 @@
最大の問題は、各スクリプトの先頭に、必要な読み込みを行う長いリストを
記述する必要があることです(各クラスについて一つ)。
</para>
<para>
<simpara>
<function>spl_autoload_register</function> 関数を使うと、
任意の数のオートローダーを登録でき、
クラスやインターフェイスが定義されていなくても自動的に読み込めるようになります。
オートローダーを登録すれば、PHPがエラーで止まる前にクラスをロードする最後の
チャンスが与えられます。
</para>
</simpara>
<para>
クラスに類似した言語構造は、同じやり方でオートロードできます。
これには、クラス、インターフェイス、トレイト、列挙型が含まれます。
</para>
<caution>
<para>
<simpara>
PHP 8.0.0 より前のバージョンでは、
<function>__autoload</function> 関数でもクラスやインターフェイスのオートロードが可能でした。
しかし、この関数は
<function>spl_autoload_register</function> 関数に比べると柔軟性という点で劣っています。
そのため、<function>__autoload</function>
関数は PHP 7.2.0 で推奨されなくなり、
PHP 8.0.0 で削除されました。
</para>
</simpara>
</caution>
<note>
<para>
Expand Down
2 changes: 1 addition & 1 deletion language/oop5/changelog.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 525aa5f198d482c0d03be54ddee5af13b376ab99 Maintainer: takagi Status: ready -->
<!-- EN-Revision: dff848b17dafaabfb7662ffb5fecfcb04e3b771d Maintainer: takagi Status: ready -->
<!-- CREDITS: mumumu -->

<sect1 xml:id="language.oop5.changelog" xmlns="http://docbook.org/ns/docbook">
Expand Down
10 changes: 5 additions & 5 deletions language/oop5/cloning.xml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 28529d3539b850e870e3aa97570f4db0e53daa03 Maintainer: hirokawa Status: ready -->
<!-- EN-Revision: dff848b17dafaabfb7662ffb5fecfcb04e3b771d Maintainer: hirokawa Status: ready -->
<!-- Credits: mumumu -->

<sect1 xml:id="language.oop5.cloning" xmlns="http://docbook.org/ns/docbook">
<title>オブジェクトのクローン作成</title>

<para>
<simpara>
オブジェクトのコピーを作成する際、そのプロパティも全て二重化することが、
常に望ましい動作であるわけではありません。
コピーコンストラクタが必要となる例として、
Expand All @@ -20,7 +20,7 @@
保持しており、親オブジェクトをコピーする際に、そのコピーが独立したオブジェクトの
コピーを有するように、そのオブジェクトのインスタンスを新たに作成したい場合が
考えられます。
</para>
</simpara>

<para>
オブジェクトのコピーは、<emphasis>clone</emphasis> キーワード (これは、そのオブジェクトの
Expand All @@ -46,12 +46,12 @@ $copy_of_object = clone $object;
<void/>
</methodsynopsis>

<para>
<simpara>
クローンの作成が完了すると、
<link linkend="object.clone">__clone()</link> メソッドが定義された場合、新規の作成されたオブジェクトの
<link linkend="object.clone">__clone()</link> メソッドがコールされるため、この中で、プロパティに
必要な変更を行うことができます。
</para>
</simpara>

<example>
<title>オブジェクトのクローン作成</title>
Expand Down
8 changes: 4 additions & 4 deletions language/oop5/constants.xml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 922b4b5aeb327d78ea1bb4b932e5db2e9a03ffc5 Maintainer: mumumu Status: ready -->
<!-- EN-Revision: dff848b17dafaabfb7662ffb5fecfcb04e3b771d Maintainer: mumumu Status: ready -->
<sect1 xml:id="language.oop5.constants" xmlns="http://docbook.org/ns/docbook">
<title>クラス定数</title>
<para>
値が変更できない <link linkend="language.constants">定数</link> をクラス内に定義することができます。
<simpara>
<link linkend="language.constants">定数</link> をクラス内に定義することができます。
クラス定数のデフォルトのアクセス範囲は <literal>public</literal> です。
</para>
</simpara>
<note>
<para>
クラス定数は、子クラスで再定義することもできます。
Expand Down
10 changes: 5 additions & 5 deletions language/oop5/decon.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 82fc6a1c8670b96f1bd2b40932b6eb19929f4f6f Maintainer: hirokawa Status: ready -->
<!-- EN-Revision: dff848b17dafaabfb7662ffb5fecfcb04e3b771d Maintainer: hirokawa Status: ready -->
<!-- CREDITS: shimooka,mumumu -->

<sect1 xml:id="language.oop5.decon" xmlns="http://docbook.org/ns/docbook">
Expand Down Expand Up @@ -170,13 +170,13 @@ class Point {
</para>
</note>
<note>
<para>
<simpara>
PHP のエンジンが曖昧になってしまうため、
オブジェクトのプロパティは、<type>callable</type> 型にすることは出来ません。
そのため、昇格させる引数も <type>callable</type> 型にはできません。
しかし、それ以外の
<link linkend="language.types.declarations">型宣言</link> は許されています。
</para>
</simpara>
</note>
<note>
<para>
Expand Down Expand Up @@ -385,7 +385,7 @@ $obj = new MyDestructableClass();
デストラクタが自身のオブジェクトへの新しい参照を作成した場合、参照カウントが再びゼロになったときや
シャットダウンシーケンス中に、再度呼び出されることはありません。
</para>
<para>
<simpara>
PHP 8.4.0 以降、 <link linkend="features.gc.collecting-cycles">ガベージサイクルの収集</link> が
<link linkend="language.fibers">ファイバー</link>の実行中に発生した場合、
回収がスケジュールされたオブジェクトのデストラクタは、 <literal>gc_destructor_fiber</literal>と呼ばれる
Expand All @@ -394,7 +394,7 @@ $obj = new MyDestructableClass();
中断された <literal>gc_destructor_fiber</literal> はガベージコレクタによって参照されなくなり、
他の参照がなければ回収される可能性があります。
デストラクタが中断されたオブジェクトは、デストラクタが復帰するかファイバー自体が回収されるまで回収されません。
</para>
</simpara>
</note>
<note>
<para>
Expand Down
6 changes: 3 additions & 3 deletions language/oop5/inheritance.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: df78bd1d232f2cd8df673accf5ba0e280695639b Maintainer: takagi Status: ready -->
<!-- EN-Revision: dff848b17dafaabfb7662ffb5fecfcb04e3b771d Maintainer: takagi Status: ready -->
<sect1 xml:id="language.oop5.inheritance" xmlns="http://docbook.org/ns/docbook">
<title>オブジェクトの継承</title>
<para>
Expand Down Expand Up @@ -33,7 +33,7 @@
コンストラクタを無効にする方法として <literal>private final</literal>
が用いられるからです。
</para>
<para>
<simpara>
メソッドやプロパティ、そして定数の
<link linkend="language.oop5.visibility">アクセス権</link>
に関するルールは、子クラスで緩めることが可能です。
Expand All @@ -47,7 +47,7 @@
コンストラクタのアクセス権は厳しくすることができます。
たとえば、親クラスの <literal>public</literal> なコンストラクタは、
子クラスで <literal>private</literal> としてマークできます。
</para>
</simpara>

<note>
<para>
Expand Down
2 changes: 1 addition & 1 deletion language/oop5/interfaces.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 565bd8b6cf2cae44ae2bc54ef6dbe6ee70ddfefd Maintainer: hirokawa Status: ready -->
<!-- EN-Revision: dff848b17dafaabfb7662ffb5fecfcb04e3b771d Maintainer: hirokawa Status: ready -->
<!-- CREDITS: shimooka,takagi,mumumu -->

<sect1 xml:id="language.oop5.interfaces" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
Expand Down
6 changes: 3 additions & 3 deletions language/oop5/iterations.xml
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1fb0ef23d7be0d8ecd9604fce16ee1e0842c6ef6 Maintainer: takagi Status: ready -->
<!-- EN-Revision: dff848b17dafaabfb7662ffb5fecfcb04e3b771d Maintainer: takagi Status: ready -->
<!-- CREDITS: hirokawa,shimooka,mumumu -->

<sect1 xml:id="language.oop5.iterations" xmlns="http://docbook.org/ns/docbook">
<title>オブジェクトの反復処理</title>
<para>
<simpara>
PHP は、たとえば &foreach; 命令などによる反復処理を可能とするように、
オブジェクトを定義する手段を提供します。
デフォルトで、
全ての <link linkend="language.oop5.visibility">アクセス権限がある</link>
プロパティは、反復処理に使用することができます。
</para>
</simpara>

<example>
<title>単純なオブジェクトの反復の例</title>
Expand Down
6 changes: 3 additions & 3 deletions language/oop5/late-static-bindings.xml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 009f215fc983eeded6161676bcffdd8cf3b6b080 Maintainer: takagi Status: ready -->
<!-- EN-Revision: dff848b17dafaabfb7662ffb5fecfcb04e3b771d Maintainer: takagi Status: ready -->
<sect1 xml:id="language.oop5.late-static-bindings" xmlns="http://docbook.org/ns/docbook">
<title>遅延静的束縛 (Late Static Bindings)</title>
<para>
<simpara>
PHP には、遅延静的束縛と呼ばれる機能が搭載されています。
これを使用すると、静的継承のコンテキストで呼び出し元のクラスを参照できるようになります。
</para>
</simpara>

<para>
より正確に言うと、遅延静的束縛は直近の "非転送コール" のクラス名を保存します。
Expand Down
8 changes: 4 additions & 4 deletions language/oop5/magic.xml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 8f51247cb4631b29686f867bd904dfe5b2678074 Maintainer: hirokawa Status: ready -->
<!-- EN-Revision: dff848b17dafaabfb7662ffb5fecfcb04e3b771d Maintainer: hirokawa Status: ready -->
<!-- CREDITS: shimooka,mumumu -->

<sect1 xml:id="language.oop5.magic" xmlns="http://docbook.org/ns/docbook">
<title>マジックメソッド</title>
<para>
<simpara>
マジックメソッドは、
ある動作がオブジェクトに対して行われた場合に、
PHP のデフォルトの動作を上書きする特別なメソッドです。
</para>
</simpara>
<caution>
<simpara>
<literal>__</literal> で始まる全てのメソッドは、
Expand Down Expand Up @@ -568,7 +568,7 @@ object(A)#2 (2) {
</simpara>
<simpara>
エクスポートしたオブジェクトをインポートする際に、
__set_state() を実装するクラスのものだけをインポートさせるようにするのは、プログラマーの責務となります。
<methodname>__set_state</methodname> を実装するクラスのものだけをインポートさせるようにするのは、プログラマーの責務となります。
</simpara>
</note>
</sect2>
Expand Down
6 changes: 3 additions & 3 deletions language/oop5/object-comparison.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: a9edd62d087ab1eb6292c795b7256e14ff9f1234 Maintainer: hirokawa Status: ready -->
<!-- EN-Revision: dff848b17dafaabfb7662ffb5fecfcb04e3b771d Maintainer: hirokawa Status: ready -->
<!-- CREDITS: shimooka,mumumu -->
<sect1 xml:id="language.oop5.object-comparison" xmlns="http://docbook.org/ns/docbook">
<title>オブジェクトの比較</title>
Expand Down Expand Up @@ -97,10 +97,10 @@ o1 !== o2 : TRUE
</example>
</para>
<note>
<para>
<simpara>
拡張モジュール内では、自前で作成したオブジェクトの
(<literal>==</literal> による) 比較方法を独自に定義することができます。
</para>
</simpara>
</note>
</sect1>

Expand Down
6 changes: 3 additions & 3 deletions language/oop5/paamayim-nekudotayim.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e2f2172bf114599926878017ab2dce356956fa9e Maintainer: takagi Status: ready -->
<!-- EN-Revision: dff848b17dafaabfb7662ffb5fecfcb04e3b771d Maintainer: takagi Status: ready -->
<!-- CREDITS: hirokawa -->

<sect1 xml:id="language.oop5.paamayim-nekudotayim" xmlns="http://docbook.org/ns/docbook">
Expand Down Expand Up @@ -89,7 +89,7 @@ OtherClass::doubleColon();
</programlisting>
</example>

<para>
<simpara>
拡張されたクラスが親クラスのメソッドの定義をオーバーライドする際、
PHPは親クラスのメソッドをコールしません。
親クラスのメソッドをコールするかしないかは、
Expand All @@ -99,7 +99,7 @@ OtherClass::doubleColon();
linkend="language.oop5.overloading">オーバーロード</link>, そして <link
linkend="language.oop5.magic">マジック</link> メソッドの定義にも
適用されます。
</para>
</simpara>

<example>
<title>親クラスのメソッドをコールする</title>
Expand Down
8 changes: 4 additions & 4 deletions language/oop5/properties.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 801e7a15e8c9ee2d16966487dc9058d992450b46 Maintainer: takagi Status: ready -->
<!-- EN-Revision: dff848b17dafaabfb7662ffb5fecfcb04e3b771d Maintainer: takagi Status: ready -->
<!-- CREDITS: mumumu -->

<sect1 xml:id="language.oop5.properties" xmlns="http://docbook.org/ns/docbook">
Expand All @@ -25,10 +25,10 @@
初期値は <link linkend="language.constants">定数</link> 値でなければなりません。
</para>
<note>
<para>
<simpara>
クラスのプロパティを宣言する古い方法として、
アクセス権などのキーワードの代わりに <literal>var</literal> キーワードを使う書き方があります。
</para>
</simpara>
</note>
<note>
<simpara>
Expand Down Expand Up @@ -174,7 +174,7 @@ class Shape

$triangle = new Shape();
$triangle->setName("triangle");
$triangle->setNumberofSides(3);
$triangle->setNumberOfSides(3);
var_dump($triangle->getName());
var_dump($triangle->getNumberOfSides());

Expand Down
2 changes: 1 addition & 1 deletion language/oop5/property-hooks.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: dfd68fd22aef25658bc9348176b55b504d26ab11 Maintainer: KentarouTakeda Status: ready -->
<!-- EN-Revision: dff848b17dafaabfb7662ffb5fecfcb04e3b771d Maintainer: KentarouTakeda Status: ready -->
<sect1 xml:id="language.oop5.property-hooks" xmlns="http://docbook.org/ns/docbook">
<title>プロパティフック</title>

Expand Down
6 changes: 3 additions & 3 deletions language/oop5/references.xml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: a9edd62d087ab1eb6292c795b7256e14ff9f1234 Maintainer: takagi Status: ready -->
<!-- EN-Revision: dff848b17dafaabfb7662ffb5fecfcb04e3b771d Maintainer: takagi Status: ready -->
<sect1 xml:id="language.oop5.references" xmlns="http://docbook.org/ns/docbook">
<title>オブジェクトと参照</title>
<para>
<simpara>
PHP でのオブジェクト指向プログラミングのポイントとしてよく言われるのは
「オブジェクトはデフォルトでは参照渡しとなります」ということです。
しかし、正確には少し異なります。
この節では、いくつかの例を用いてその誤解をといていきます。
</para>
</simpara>

<para>
PHP の参照は一種のエイリアスで、ふたつの異なる変数に同じ値を書き込めるものです。
Expand Down
Loading
Loading