From b44b09eed1cc21fdef710b901e37f98ab2409c0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AD=A6=E7=94=B0=20=E6=86=B2=E5=A4=AA=E9=83=8E?= Date: Sun, 20 Sep 2026 13:09:01 +0900 Subject: [PATCH] =?UTF-8?q?forward=5Fstatic=5Fcall()=20=E3=81=A8=20forward?= =?UTF-8?q?=5Fstatic=5Fcall=5Farray()=20=E3=81=AE=E8=AA=AC=E6=98=8E?= =?UTF-8?q?=E3=81=AE=E8=AA=A4=E3=82=8A=E3=82=92=E5=8E=9F=E6=96=87=E3=81=AB?= =?UTF-8?q?=E5=90=88=E3=82=8F=E3=81=9B=E3=81=A6=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit php/doc-en@846dfb87da (php/doc-en#5241) と php/doc-en@17ddeefd65 (php/doc-en#5784) に追従します。 forward_static_call_array() を「メソッドのコンテキストでコールしなければならない」 としていた誤りが削除され、クラス外では遅延静的束縛なしの call_user_func_array() と 同じ挙動になること、forward_static_call() 側はクラススコープを必要とするという 非対称性が追記されました。 ## 対象ファイル (2件) - reference/funchand/functions/forward-static-call.xml - reference/funchand/functions/forward-static-call-array.xml --- .../functions/forward-static-call-array.xml | 45 ++++++++++++------- .../functions/forward-static-call.xml | 21 +++++---- 2 files changed, 41 insertions(+), 25 deletions(-) diff --git a/reference/funchand/functions/forward-static-call-array.xml b/reference/funchand/functions/forward-static-call-array.xml index 1269ecfc87c..7ae7a01b9e6 100644 --- a/reference/funchand/functions/forward-static-call-array.xml +++ b/reference/funchand/functions/forward-static-call-array.xml @@ -1,11 +1,11 @@ - + forward_static_call_array - static メソッドをコールし、引数を配列で渡す + 現在呼び出されたクラスを保持したまま、パラメータの配列を指定してコールバックをコールする @@ -15,14 +15,25 @@ callablecallback arrayargs - - callback パラメータで指定したユーザー定義の関数あるいはメソッドをコールします。 - この関数はメソッドのコンテキストでコールしなければなりません。 - クラスの外部で使用することはできません。 - この関数は 遅延静的束縛 を使います。 - 転送先のメソッドへのすべての引数は値渡しで、 - call_user_func_array と同様に配列で指定します。 - + + callback パラメータで指定したユーザー定義の関数あるいはメソッドを、 + call_user_func_array と同様に引数を配列で渡してコールします。 + メソッドのコンテキスト内でコールし、かつコールバックがメソッドの場合は + 転送コール となるため、 + そのメソッド内の static:: は、 + 転送元での static:: と同じクラスに解決されます。 + これは、self::parent:: + のように振る舞わせたい static メソッドをコールバックとして渡す場合に便利です。 + + + + forward_static_call とは異なり、 + この関数は有効なクラススコープを必要としません。 + クラスの外部でコールした場合、forward_static_call は + Error をスローしますが、 + この関数はスローしません。 + + @@ -41,14 +52,14 @@ args - - このひとつのパラメータに、メソッドに渡すすべてのパラメータを配列で指定します。 - + + コールバックに渡すパラメータを配列で指定します。 + - - forward_static_call_array - へのパラメータは参照渡しではないことに注意しましょう。 - + + パラメータを参照渡しするには、 + args の対応する要素が参照である必要があります。 + diff --git a/reference/funchand/functions/forward-static-call.xml b/reference/funchand/functions/forward-static-call.xml index 202974018c5..53828ced1e6 100644 --- a/reference/funchand/functions/forward-static-call.xml +++ b/reference/funchand/functions/forward-static-call.xml @@ -1,11 +1,11 @@ - + forward_static_call - static メソッドをコールする + 現在呼び出されたクラスを保持したままコールバックをコールする @@ -15,12 +15,17 @@ callablecallback mixedargs - + callback パラメータで指定したユーザー定義の関数あるいはメソッドを、 それに続く引数を指定してコールします。この関数はメソッドのコンテキストでコールしなければなりません。 クラスの外部で使用することはできません。 - この関数は 遅延静的束縛 を使います。 - + コールバックがメソッドの場合は + 転送コール となるため、 + そのメソッド内の static:: は、 + 転送元での static:: と同じクラスに解決されます。 + これは、self::parent:: + のように振る舞わせたい static メソッドをコールバックとして渡す場合に便利です。 + @@ -39,9 +44,9 @@ args - - 関数に渡したいパラメータ。 - + + コールバックに渡す、ゼロ個以上のパラメータ。 +