From e75bd56deb49e83a89d25d8771d694fa9e400fb5 Mon Sep 17 00:00:00 2001 From: Yoshinari Takaoka Date: Sun, 8 Dec 2024 18:43:56 +0900 Subject: [PATCH] =?UTF-8?q?visibility=20=E3=82=92=E3=80=8C=E5=8F=AF?= =?UTF-8?q?=E8=A6=96=E6=80=A7=E3=80=8D=E3=81=A8=E8=A8=B3=E3=81=97=E3=81=A6?= =?UTF-8?q?=E3=81=84=E3=82=8B=E9=83=A8=E5=88=86=E3=82=92=E5=85=A8=E3=81=A6?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E3=80=82=E4=BD=86=E3=81=97=E3=80=81=E3=80=8C?= =?UTF-8?q?=E9=9D=9E=E5=AF=BE=E7=A7=B0=E5=8F=AF=E8=A6=96=E6=80=A7=E3=83=97?= =?UTF-8?q?=E3=83=AD=E3=83=91=E3=83=86=E3=82=A3=E3=80=8D=E3=81=AF=E9=99=A4?= =?UTF-8?q?=E3=81=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/php/doc-en/commit/16f66c05a4060a7d673ae1c70b656d65009407b0 --- README_Glossary.md | 3 +++ language/oop5/properties.xml | 4 +-- language/oop5/visibility.xml | 27 ++++++++++--------- .../reflectionproperty/isprivate.xml | 2 +- .../reflectionproperty/isprotected.xml | 2 +- .../reflectionproperty/ispublic.xml | 2 +- 6 files changed, 22 insertions(+), 18 deletions(-) diff --git a/README_Glossary.md b/README_Glossary.md index ff6e85dd545..658b720bc4e 100644 --- a/README_Glossary.md +++ b/README_Glossary.md @@ -3,6 +3,9 @@ ここには、PHP マニュアル 日本語版で「統一した」訳語を当てている単語を記録しています。 以下の単語の訳がブレていたら、issue または Pull Request で報告してください。 +- visibility + * 「アクセス権」で統一 + * protected/private/public を付けた、メソッドやプロパティが可視な範囲のこと - extension * 拡張モジュール ( [#24](https://github.com/php/doc-ja/issues/24) ) - internal function / builtin function diff --git a/language/oop5/properties.xml b/language/oop5/properties.xml index 2b5da1e40b3..f0136bfd90e 100644 --- a/language/oop5/properties.xml +++ b/language/oop5/properties.xml @@ -205,9 +205,9 @@ Fatal error: Uncaught Error: Typed property Shape::$numberOfSides must not be ac PHP 8.1.0 以降では、readonly を付けてプロパティを宣言できます。これによって、プロパティを初期化した後に値が変更されることを防止できます。 - PHP 8.4.0より前では、readonly プロパティは暗黙的に private-set であり、 + PHP 8.4.0 より前のバージョンでは、readonly プロパティは暗黙的に private-set であり、 同じクラス内からのみ書き込みが可能でした。 - PHP 8.4.0からは、readonly プロパティは暗黙的に + PHP 8.4.0 以降では、readonly プロパティは暗黙的に protected(set) となり、 子クラスからも設定可能です。必要に応じて明示的に オーバーライドすることもできます。 diff --git a/language/oop5/visibility.xml b/language/oop5/visibility.xml index 7fc82d7bf70..7a11f1e0675 100644 --- a/language/oop5/visibility.xml +++ b/language/oop5/visibility.xml @@ -84,10 +84,10 @@ $obj2->printHello(); // Public2, Protected2, Undefined を表示します 非対称可視性プロパティ PHP 8.4 から、プロパティは非対称に - 可視性を設定できるようになりました。 + アクセス権を設定できるようになりました。 読み取り(get)と書き込み(set)に - 異なるスコープを設定できます。具体的には、set の可視性が - メインの可視性より広くならない限り、 + 異なるスコープを設定できます。具体的には、set のアクセス権が + メインのアクセス権より広くならない限り、 別々に指定できます。 @@ -130,12 +130,12 @@ $b->pubYear = 2023; // 致命的なエラー - 型付きプロパティのみが、set の可視性を個別に指定できます。 + 型付きプロパティのみが、set のアクセス権を個別に指定できます。 - set の可視性は、get と同じか、 + set のアクセス権は、get と同じか、 より厳しくなければなりません。つまり、 public protected(set) および protected protected(set) は許可されますが、protected public(set) は構文エラーになります。 @@ -143,20 +143,20 @@ $b->pubYear = 2023; // 致命的なエラー - プロパティが public の場合、メインの可視性は + プロパティが public の場合、メインのアクセス権は 省略できます。つまり、public private(set)private(set) は 同じ結果になります。 - private(set) の可視性を持つプロパティは + private(set) のアクセス権を持つプロパティは 自動的に final となり、子クラスで再宣言できません。 - プロパティへのリファレンスを取得する場合、get ではなく set の可視性に従います。 + プロパティへのリファレンスを取得する場合、get ではなく set のアクセス権に従います。 これは、リファレンスを使用してプロパティの値を変更できるためです。 @@ -164,15 +164,16 @@ $b->pubYear = 2023; // 致命的なエラー 同様に、配列プロパティへの書き込みを試みると、内部的には getset の両方の操作が行われます。そのため、常により厳しい set - の可視性に従います。 + のアクセス権に従います。 クラスが別のクラスを拡張するとき、子クラスは final でない任意のプロパティを再定義できます。その際、 - 新しい可視性が親クラスと同じか広い場合に限り、メインの可視性または set - の可視性を広げることができます。ただし、 + 新しいアクセス権が親クラスと同じか広い場合に限り、 + メインのアクセス権または set + のアクセス権を広げることができます。ただし、 private プロパティがオーバーライドされると、 実際には親のプロパティを変更するのではなく、 異なる内部名を持つ新しいプロパティを作成することに注意してください。 @@ -191,8 +192,8 @@ class Book class SpecialBook extends Book { - public protected(set) $title; // OK。読み取りの可視性が広く、書き込みは同じだから。 - public string $author; // OK。読み取りの可視性は同じで、書き込みが広いから。 + public protected(set) $title; // OK。読み取りのアクセス権が広く、書き込みは同じだから。 + public string $author; // OK。読み取りのアクセス権は同じで、書き込みが広いから。 public protected(set) int $pubYear; // 致命的なエラー。private(set) プロパティは final です。 } ?> diff --git a/reference/reflection/reflectionproperty/isprivate.xml b/reference/reflection/reflectionproperty/isprivate.xml index 8bd562fd396..32115d027b3 100644 --- a/reference/reflection/reflectionproperty/isprivate.xml +++ b/reference/reflection/reflectionproperty/isprivate.xml @@ -31,7 +31,7 @@ - これはデフォルトの可視性のみを参照します。set の可視性は指定されていても無視されることに注意してください。 + これはデフォルトのアクセス権のみを参照します。set のアクセス権 は指定されていても無視されることに注意してください。 diff --git a/reference/reflection/reflectionproperty/isprotected.xml b/reference/reflection/reflectionproperty/isprotected.xml index 6c8ced5510c..a5dc65e36cb 100644 --- a/reference/reflection/reflectionproperty/isprotected.xml +++ b/reference/reflection/reflectionproperty/isprotected.xml @@ -31,7 +31,7 @@ - これはデフォルトの可視性のみを参照します。set の可視性は指定されていても無視されることに注意してください。 + これはデフォルトのアクセス権のみを参照します。set のアクセス権 は指定されていても無視されることに注意してください。 diff --git a/reference/reflection/reflectionproperty/ispublic.xml b/reference/reflection/reflectionproperty/ispublic.xml index 0b3ff694971..71b6b5dad03 100644 --- a/reference/reflection/reflectionproperty/ispublic.xml +++ b/reference/reflection/reflectionproperty/ispublic.xml @@ -31,7 +31,7 @@ - これはデフォルトの可視性のみを参照します。set の可視性は指定されていても無視されることに注意してください。 + これはデフォルトのアクセス権のみを参照します。set のアクセス権 は指定されていても無視されることに注意してください。