Skip to content

Commit

Permalink
visibility を「可視性」と訳している部分を全て修正。但し、「非対称可視性プロパティ」は除く
Browse files Browse the repository at this point in the history
  • Loading branch information
mumumu committed Dec 8, 2024
1 parent b914f39 commit e75bd56
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 18 deletions.
3 changes: 3 additions & 0 deletions README_Glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions language/oop5/properties.xml
Original file line number Diff line number Diff line change
Expand Up @@ -205,9 +205,9 @@ Fatal error: Uncaught Error: Typed property Shape::$numberOfSides must not be ac
<para>
PHP 8.1.0 以降では、<code>readonly</code>
を付けてプロパティを宣言できます。これによって、プロパティを初期化した後に値が変更されることを防止できます。
PHP 8.4.0より前では、<literal>readonly</literal> プロパティは暗黙的に private-set であり、
PHP 8.4.0 より前のバージョンでは、<literal>readonly</literal> プロパティは暗黙的に private-set であり、
同じクラス内からのみ書き込みが可能でした。
PHP 8.4.0からは、<literal>readonly</literal> プロパティは暗黙的に
PHP 8.4.0 以降では、<literal>readonly</literal> プロパティは暗黙的に
<link linkend="language.oop5.visibility-members-aviz"><literal>protected(set)</literal></link> となり、
子クラスからも設定可能です。必要に応じて明示的に
オーバーライドすることもできます。
Expand Down
27 changes: 14 additions & 13 deletions language/oop5/visibility.xml
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,10 @@ $obj2->printHello(); // Public2, Protected2, Undefined を表示します
<title>非対称可視性プロパティ</title>
<simpara>
PHP 8.4 から、プロパティは非対称に
可視性を設定できるようになりました
アクセス権を設定できるようになりました
読み取り(<literal>get</literal>)と書き込み(<literal>set</literal>)に
異なるスコープを設定できます。具体的には、<literal>set</literal> の可視性が
メインの可視性より広くならない限り
異なるスコープを設定できます。具体的には、<literal>set</literal> のアクセス権が
メインのアクセス権より広くならない限り
別々に指定できます。
</simpara>
<example>
Expand Down Expand Up @@ -130,49 +130,50 @@ $b->pubYear = 2023; // 致命的なエラー
<itemizedlist>
<listitem>
<simpara>
型付きプロパティのみが、<literal>set</literal> の可視性を個別に指定できます
型付きプロパティのみが、<literal>set</literal> のアクセス権を個別に指定できます
</simpara>
</listitem>
<listitem>
<simpara>
<literal>set</literal> の可視性は、<literal>get</literal> と同じか、
<literal>set</literal> のアクセス権は、<literal>get</literal> と同じか、
より厳しくなければなりません。つまり、
<code>public protected(set)</code> および <code>protected protected(set)</code>
は許可されますが、<code>protected public(set)</code> は構文エラーになります。
</simpara>
</listitem>
<listitem>
<simpara>
プロパティが <literal>public</literal> の場合、メインの可視性は
プロパティが <literal>public</literal> の場合、メインのアクセス権は
省略できます。つまり、<code>public private(set)</code> と <code>private(set)</code> は
同じ結果になります。
</simpara>
</listitem>
<listitem>
<simpara>
<literal>private(set)</literal> の可視性を持つプロパティは
<literal>private(set)</literal> のアクセス権を持つプロパティは
自動的に <literal>final</literal> となり、子クラスで再宣言できません。
</simpara>
</listitem>
<listitem>
<simpara>
プロパティへのリファレンスを取得する場合、<literal>get</literal> ではなく <literal>set</literal> の可視性に従います
プロパティへのリファレンスを取得する場合、<literal>get</literal> ではなく <literal>set</literal> のアクセス権に従います
これは、リファレンスを使用してプロパティの値を変更できるためです。
</simpara>
</listitem>
<listitem>
<simpara>
同様に、配列プロパティへの書き込みを試みると、内部的には <literal>get</literal> と
<literal>set</literal> の両方の操作が行われます。そのため、常により厳しい <literal>set</literal>
の可視性に従います
のアクセス権に従います
</simpara>
</listitem>
</itemizedlist>
<simpara>
クラスが別のクラスを拡張するとき、子クラスは
<literal>final</literal> でない任意のプロパティを再定義できます。その際、
新しい可視性が親クラスと同じか広い場合に限り、メインの可視性または <literal>set</literal>
の可視性を広げることができます。ただし、
新しいアクセス権が親クラスと同じか広い場合に限り、
メインのアクセス権または <literal>set</literal>
のアクセス権を広げることができます。ただし、
<literal>private</literal> プロパティがオーバーライドされると、
実際には親のプロパティを変更するのではなく、
異なる内部名を持つ新しいプロパティを作成することに注意してください。
Expand All @@ -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 です。
}
?>
Expand Down
2 changes: 1 addition & 1 deletion reference/reflection/reflectionproperty/isprivate.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
</para>
<note>
<simpara>
これはデフォルトの可視性のみを参照します。<link linkend="language.oop5.visibility-members-aviz"><literal>set</literal> の可視性</link>は指定されていても無視されることに注意してください。
これはデフォルトのアクセス権のみを参照します。<link linkend="language.oop5.visibility-members-aviz"><literal>set</literal> のアクセス権</link> は指定されていても無視されることに注意してください。
</simpara>
</note>
</refsect1>
Expand Down
2 changes: 1 addition & 1 deletion reference/reflection/reflectionproperty/isprotected.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
</para>
<note>
<simpara>
これはデフォルトの可視性のみを参照します。<link linkend="language.oop5.visibility-members-aviz"><literal>set</literal> の可視性</link>は指定されていても無視されることに注意してください。
これはデフォルトのアクセス権のみを参照します。<link linkend="language.oop5.visibility-members-aviz"><literal>set</literal> のアクセス権</link> は指定されていても無視されることに注意してください。
</simpara>
</note>
</refsect1>
Expand Down
2 changes: 1 addition & 1 deletion reference/reflection/reflectionproperty/ispublic.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
</para>
<note>
<simpara>
これはデフォルトの可視性のみを参照します。<link linkend="language.oop5.visibility-members-aviz"><literal>set</literal> の可視性</link>は指定されていても無視されることに注意してください。
これはデフォルトのアクセス権のみを参照します。<link linkend="language.oop5.visibility-members-aviz"><literal>set</literal> のアクセス権</link> は指定されていても無視されることに注意してください。
</simpara>
</note>
</refsect1>
Expand Down

0 comments on commit e75bd56

Please sign in to comment.