-
Notifications
You must be signed in to change notification settings - Fork 105
/
Copy pathforward-static-call-array.xml
144 lines (132 loc) · 3.68 KB
/
forward-static-call-array.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 0c9c2dd669fe9395eaa73d487fbd160f9057429a Maintainer: mowangjuanzi Status: ready -->
<refentry xml:id="function.forward-static-call-array" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>forward_static_call_array</refname>
<refpurpose>调用静态方法且参数作为数组传递</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>mixed</type><methodname>forward_static_call_array</methodname>
<methodparam><type>callable</type><parameter>callback</parameter></methodparam>
<methodparam><type>array</type><parameter>args</parameter></methodparam>
</methodsynopsis>
<para>
通过 <parameter>callback</parameter>
参数指定调用用户定义的函数或者方法。此函数必须在方法上下文中调用,不能在类外使用。它使用<link
linkend="language.oop5.late-static-bindings">后期静态绑定</link>。转发方法的所有参数都作为值和数组传递,类似于
<function>call_user_func_array</function>。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>callback</parameter></term>
<listitem>
<para>
要调用的函数或者方法。此参数可以是带类名及方法的 &array; 或者带函数名的 &string;。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>parameter</parameter></term>
<listitem>
<para>
参数,将所有方法参数聚合到一个数组中。
</para>
<note>
<para>
注意 <function>forward_static_call_array</function> 的参数不是通过引用传递的。
</para>
</note>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
返回函数的结果,失败时返回 &false;。
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>forward_static_call_array</function> 示例</title>
<programlisting role="php">
<![CDATA[
<?php
class A
{
const NAME = 'A';
public static function test() {
$args = func_get_args();
echo static::NAME, " ".join(',', $args)." \n";
}
}
class B extends A
{
const NAME = 'B';
public static function test() {
echo self::NAME, "\n";
forward_static_call_array(array('A', 'test'), array('more', 'args'));
forward_static_call_array( 'test', array('other', 'args'));
}
}
B::test('foo');
function test() {
$args = func_get_args();
echo "C ".join(',', $args)." \n";
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
B
B more,args
C other,args
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>forward_static_call</function></member>
<member><function>call_user_func</function></member>
<member><function>call_user_func_array</function></member>
<member><function>is_callable</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- 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:"~/.phpdoc/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
-->