-
Notifications
You must be signed in to change notification settings - Fork 82
Expand file tree
/
Copy pathcompact.xml
More file actions
166 lines (159 loc) · 4.88 KB
/
compact.xml
File metadata and controls
166 lines (159 loc) · 4.88 KB
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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: d58ee8eaaa7f716c51f66f5f1058ab3c42376d98 Maintainer: hirokawa Status: ready -->
<!-- CREDITS: shimooka -->
<refentry xml:id="function.compact" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>compact</refname>
<refpurpose>変数名とその値から配列を作成する</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>compact</methodname>
<methodparam><type class="union"><type>array</type><type>string</type></type><parameter>var_name</parameter></methodparam>
<methodparam rep="repeat"><type class="union"><type>array</type><type>string</type></type><parameter>var_names</parameter></methodparam>
</methodsynopsis>
<para>
変数名とその値から配列を作成します。
</para>
<para>
各引数について、<function>compact</function>
は現在の <link linkend="features.gc.refcounting-basics">シンボルテーブル</link> においてその名前を有する変数を探し、
変数名がキー、変数の値がそのキーに関する値となるように追加します。
端的に言うと、<function>extract</function> の逆の動作をします。
</para>
<note>
<para>
PHP 7.3 より前のバージョンでは、設定されていない全ての文字列は、単にスキップされます。
</para>
</note>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>var_name</parameter></term>
<term><parameter>var_names</parameter></term>
<listitem>
<para>
<function>compact</function> がとるパラメータの数は可変です。
各パラメータは、変数名を値とする文字列か、
変数名の配列のどちらかとすることができます。
配列は、変数名を値とする別の配列を持つことができます。
<function>compact</function>はこれを再帰的に処理します。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
追加された全ての変数を値とする出力配列を返します。
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
<function>compact</function> は、与えられた文字列が示す変数が未定義の場合、
<constant>E_WARNING</constant> レベルのエラーを発行します。
</para>
</refsect1>
<refsect1 role="changelog"><!-- {{{ -->
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>7.3.0</entry>
<entry>
<function>compact</function> は、与えられた文字列が示す変数が未定義の場合、
<constant>E_NOTICE</constant> レベルのエラーを発行するようになりました。
以前のバージョンでは、設定されていない全ての文字列は、単にスキップされます。
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1><!-- }}} -->
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>compact</function> の例</title>
<programlisting role="php">
<![CDATA[
<?php
$city = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";
$location_vars = array("city", "state");
$result = compact("event", $location_vars);
print_r($result);
?>
]]>
</programlisting>
&example.outputs;
<screen role="php">
<![CDATA[
Array
(
[event] => SIGGRAPH
[city] => San Francisco
[state] => CA
)
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<title>分かった!</title>
<para>
<link linkend="language.variables.variable">可変変数</link> は関数内で
PHP の <link linkend="language.variables.superglobals">
スーパーグローバル配列</link> と併用してはいけませんので、
スーパーグローバル配列を <function>compact</function> に渡してはいけません。
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>extract</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
-->