cvs: phpdoc-ja /language oop5.xml /language/oop5 late-static-bindings.xml /reference/info ini.xml

From: Date: Sun, 21 Oct 2007 01:55:54 +0000
Subject: cvs: phpdoc-ja /language oop5.xml /language/oop5 late-static-bindings.xml /reference/info ini.xml
Groups: php.doc.ja 
Request: Send a blank email to doc-ja+get-1942@lists.php.net to get a copy of this message
takagi Sun Oct 21 01:55:54 2007 UTC Added files: /phpdoc-ja/language/oop5 late-static-bindings.xml Modified files: /phpdoc-ja/reference/info ini.xml /phpdoc-ja/language oop5.xml Log: sync with en.

http://cvs.php.net/viewvc.cgi/phpdoc-ja/reference/info/ini.xml?r1=1.12&r2=1.13&diff_format=u Index: phpdoc-ja/reference/info/ini.xml diff -u phpdoc-ja/reference/info/ini.xml:1.12 phpdoc-ja/reference/info/ini.xml:1.13 --- phpdoc-ja/reference/info/ini.xml:1.12 Sun Sep 30 04:48:33 2007 +++ phpdoc-ja/reference/info/ini.xml Sun Oct 21 01:55:54 2007 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- $Revision: 1.12 $ --> -<!-- EN-Revision: 1.20 Maintainer: hirokawa Status: ready --> +<!-- $Revision: 1.13 $ --> +<!-- EN-Revision: 1.21 Maintainer: hirokawa Status: ready --> <!-- CREDITS: takagi --> <section xml:id="info.configuration" xmlns="http://docbook.org/ns/docbook"> &reftitle.runtime; @@ -247,6 +247,7 @@ <type>boolean</type> </term> <listitem> + &warn.deprecated.removed-6-0-0; <para> GPC(Get/Post/Cookie) 処理に関する magic_quotes の設定を行います。 magic_quotes が on の場合、'(シングルクオート)、&quot; @@ -285,6 +286,7 @@ <type>boolean</type> </term> <listitem> + &warn.deprecated.removed-6-0-0; <para> <parameter>magic_quotes_runtime</parameter> が有効の場合、 データベースおよびテクストファイルを含む外部ソースから http://cvs.php.net/viewvc.cgi/phpdoc-ja/language/oop5.xml?r1=1.6&r2=1.7&diff_format=u Index: phpdoc-ja/language/oop5.xml diff -u phpdoc-ja/language/oop5.xml:1.6 phpdoc-ja/language/oop5.xml:1.7 --- phpdoc-ja/language/oop5.xml:1.6 Fri Jun 22 14:31:35 2007 +++ phpdoc-ja/language/oop5.xml Sun Oct 21 01:55:54 2007 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- $Revision: 1.6 $ --> -<!-- EN-Revision: 1.13 Maintainer: hirokawa Status: ready --> +<!-- $Revision: 1.7 $ --> +<!-- EN-Revision: 1.14 Maintainer: hirokawa Status: ready --> <chapter xml:id="language.oop5" xmlns="http://docbook.org/ns/docbook"> <title>クラスとオブジェクト (PHP 5)</title> @@ -32,6 +32,7 @@ &language.oop5.object-comparison; &language.oop5.reflection; &language.oop5.typehinting; + &language.oop5.late-static-bindings; </chapter> <!-- Keep this comment at the end of the file http://cvs.php.net/viewvc.cgi/phpdoc-ja/language/oop5/late-static-bindings.xml?view=markup&rev=1.1 Index: phpdoc-ja/language/oop5/late-static-bindings.xml +++ phpdoc-ja/language/oop5/late-static-bindings.xml <?xml version="1.0" encoding="utf-8"?> <!-- $Revision: 1.1 $ --> <!-- EN-Revision: 1.1 Maintainer: takagi Status: ready --> <sect1 xml:id="language.oop5.late-static-bindings" xmlns="http://docbook.org/ns/docbook"> <title>遅延静的束縛 (Late Static Bindings)</title> <para> PHP 5.3.0 以降、PHP に遅延静的束縛と呼ばれる機能が搭載されます。 これを使用すると、静的継承のコンテキストで呼び出し元のクラスを参照できるようになります。 </para> <para> この "遅延静的束縛" という機能名は、内部動作を考慮してつけられたものです。 "遅延束縛 (Late binding)" の由来は、メソッドを定義しているクラス名を使用しても <literal>static::</literal> の解決ができなくなったことによります。 その代わりに、実行時情報をもとに解決するようになります。 "静的束縛 (static binding)" の由来は、 静的メソッドのコールに使用できることによります (ただし、静的メソッド以外でも使用可能です)。 </para> <sect2 xml:id="language.oop5.late-static-bindings.self"> <title><literal>self::</literal> の制限</title> <para> <literal>self::</literal> あるいは <literal>__CLASS__</literal> による現在のクラスへの静的参照は、 そのメソッドが属するクラス (つまり、 そのメソッドが定義されているクラス) に解決されます。 </para> <example> <title><literal>self::</literal> の使用例</title> <programlisting role="php"> <![CDATA[ <?php class A { public static function who() { echo __CLASS__; } public static function test() { self::who(); } } class B extends A { public static function who() { echo __CLASS__; } } B::test(); ?> ]]> </programlisting> &example.outputs; <screen> <![CDATA[ A ]]> </screen> </example> </sect2> <sect2 xml:id="language.oop5.late-static-bindings.usage"> <title>遅延静的束縛の使用法</title> <para> 遅延静的束縛は、この制限を解決するためのキーワードを導入し、 実行時に最初にコールされたクラスを参照するようにしています。 このキーワードを使用すると、先ほどの例における <literal>test()</literal> から <literal>B</literal> を参照できるようになります。 このキーワードは新たに追加したものではなく、すでに予約済みである <literal>static</literal> を使用しています。 </para> <example> <title><literal>static::</literal> のシンプルな使用法</title> <programlisting role="php"> <![CDATA[ <?php class A { public static function who() { echo __CLASS__; } public static function test() { static::who(); // これで、遅延静的束縛が行われます } } class B extends A { public static function who() { echo __CLASS__; } } B::test(); ?> ]]> </programlisting> &example.outputs; <screen> <![CDATA[ B ]]> </screen> </example> <note> <para> <literal>static::</literal> の動作は、静的メソッドにおいては <literal>$this</literal> と異なります! <literal>$this-></literal> は継承規則に従いますが、 <literal>static::</literal> は従いません。 この違いについては、後ほど詳しく説明します。 </para> </note> <example> <title>非静的コンテキストにおける <literal>static::</literal> の使用法</title> <programlisting role="php"> <![CDATA[ <?php class TestChild extends TestParent { public function __construct() { static::who(); } public function test() { $o = new TestParent(); } public static function who() { echo __CLASS__."\n"; } } class TestParent { public function __construct() { static::who(); } public static function who() { echo __CLASS__."\n"; } } $o = new TestChild; $o->test(); ?> ]]> </programlisting> &example.outputs; <screen> <![CDATA[ TestChild TestParent ]]> </screen> </example> <note> <para> 遅延静的束縛の解決は、静的コールが代替なしに完全に解決された時点で終了します。 </para> <example> <title>完全に解決された静的コール</title> <programlisting role="php"> <![CDATA[ <?php class A { public static function foo() { static::who(); } public static function who() { echo __CLASS__."\n"; } } class B extends A { public static function test() { A::foo(); } public static function who() { echo __CLASS__."\n"; } } B::test(); ?> ]]> </programlisting> &example.outputs; <screen> <![CDATA[ A ]]> </screen> </example> </note> </sect2> <sect2 xml:id="language.oop5.late-static-bindings.edge-cases"> <title>Edge cases</title> <para> PHP でメソッドをコールするには、さまざまな方法があります。 たとえばコールバックやマジックメソッドなどもそのひとつです。 遅延静的束縛は実行時の情報にもとづいて解決を行うので、 このように特殊な場合には予期せぬ結果となる可能性があります。 </para> <example> <title>マジックメソッド内における遅延静的束縛</title> <programlisting role="php"> <![CDATA[ <?php class A { protected static function who() { echo __CLASS__."\n"; } public function __get($var) { return static::who(); } } class B extends A { protected static function who() { echo __CLASS__."\n"; } } $b = new B; $b->foo; ?> ]]> </programlisting> &example.outputs; <screen> <![CDATA[ B ]]> </screen> </example> </sect2> </sect1> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->
« previous php.doc.ja (#1942) next »