reference/math/functions/pow.xml
761d72245071f89a626903c9bcdc6aaff1252d54
761d72245071f89a626903c9bcdc6aaff1252d54
...
...
@@ -8,21 +8,26 @@
8
8
<refsect1 role="description">
9
9
&reftitle.description;
10
10
<methodsynopsis>
11
-
<type>number</type><methodname>pow</methodname>
12
-
<methodparam><type>number</type><parameter>base</parameter></methodparam>
13
-
<methodparam><type>number</type><parameter>exp</parameter></methodparam>
14
-
</methodsynopsis>
11
+
<type class="union"><type>int</type><type>float</type><type>object</type></type><methodname>pow</methodname>
12
+
<methodparam><type>mixed</type><parameter>num</parameter></methodparam>
13
+
<methodparam><type>mixed</type><parameter>exponent</parameter></methodparam>
14
+
</methodsynopsis>
15
15
<para>
16
-
Returns <parameter>base</parameter> raised to the power of
17
-
<parameter>exp</parameter>.
16
+
Returns <parameter>num</parameter> raised to the power of
17
+
<parameter>exponent</parameter>.
18
18
</para>
19
+
<note>
20
+
<para>
21
+
It is possible to use the <link linkend="language.operators.arithmetic">**</link> operator instead.
22
+
</para>
23
+
</note>
19
24
</refsect1>
20
25
<refsect1 role="parameters">
21
26
&reftitle.parameters;
22
27
<para>
23
28
<variablelist>
24
29
<varlistentry>
25
-
<term><parameter>base</parameter></term>
30
+
<term><parameter>num</parameter></term>
26
31
<listitem>
27
32
<para>
28
33
The base to use
...
...
@@ -30,7 +35,7 @@
30
35
</listitem>
31
36
</varlistentry>
32
37
<varlistentry>
33
-
<term><parameter>exp</parameter></term>
38
+
<term><parameter>exponent</parameter></term>
34
39
<listitem>
35
40
<para>
36
41
The exponent
...
...
@@ -43,43 +48,39 @@
43
48
<refsect1 role="returnvalues">
44
49
&reftitle.returnvalues;
45
50
<para>
46
-
<parameter>base</parameter> raised to the power of <parameter>exp</parameter>.
51
+
<parameter>num</parameter> raised to the power of <parameter>exponent</parameter>.
47
52
If both arguments are non-negative integers and the result can be represented
48
-
as an integer, the result will be returned with <type>integer</type> type,
53
+
as an integer, the result will be returned with <type>int</type> type,
49
54
otherwise it will be returned as a <type>float</type>.
50
55
</para>
56
+
<para>
57
+
PHP-Extensions may override the behaviour of this operation and make it return an object.
58
+
</para>
51
59
</refsect1>
60
+
52
61
<refsect1 role="changelog">
53
62
&reftitle.changelog;
54
-
<para>
55
-
<informaltable>
56
-
<tgroup cols="2">
57
-
<thead>
58
-
<row>
59
-
<entry>&Version;</entry>
60
-
<entry>&Description;</entry>
61
-
</row>
62
-
</thead>
63
-
<tbody>
64
-
<row>
65
-
<entry>4.2.0</entry>
66
-
<entry>
67
-
No warning is emitted on errors, even if the value can't be computed.
68
-
</entry>
69
-
</row>
70
-
<row>
71
-
<entry>4.0.6</entry>
72
-
<entry>
73
-
The function will now return <type>integer</type> results if possible,
74
-
before this it always returned a <type>float</type> result. For older
75
-
versions, you may receive a bogus result for complex numbers.
76
-
</entry>
77
-
</row>
78
-
</tbody>
79
-
</tgroup>
80
-
</informaltable>
81
-
</para>
63
+
<informaltable>
64
+
<tgroup cols="2">
65
+
<thead>
66
+
<row>
67
+
<entry>&Version;</entry>
68
+
<entry>&Description;</entry>
69
+
</row>
70
+
</thead>
71
+
<tbody>
72
+
<row>
73
+
<entry>8.4.0</entry>
74
+
<entry>
75
+
Raising <literal>0</literal> to a negative
76
+
<parameter>exponent</parameter> is now deprecated.
77
+
</entry>
78
+
</row>
79
+
</tbody>
80
+
</tgroup>
81
+
</informaltable>
82
82
</refsect1>
83
+
83
84
<refsect1 role="examples">
84
85
&reftitle.examples;
85
86
<para>
...
...
@@ -90,11 +91,23 @@
90
91
<?php
91
92
92
93
var_dump(pow(2, 8)); // int(256)
93
-
echo pow(-1, 20); // 1
94
-
echo pow(0, 0); // 1
94
+
echo pow(-1, 20), PHP_EOL; // 1
95
+
echo pow(0, 0), PHP_EOL; // 1
96
+
echo pow(10, -1), PHP_EOL; // 0.1
95
97
96
-
echo pow(-1, 5.5); // PHP >4.0.6 NAN
97
-
echo pow(-1, 5.5); // PHP <=4.0.6 1.#IND
98
+
echo pow(-1, 5.5), PHP_EOL; // NAN
99
+
?>
100
+
]]>
101
+
</programlisting>
102
+
</example>
103
+
</para>
104
+
<para>
105
+
<example>
106
+
<title>Examples of <function>pow</function> With GMP Extension Object</title>
107
+
<programlisting role="php" annotations="non-interactive">
108
+
<![CDATA[
109
+
<?php
110
+
var_dump(pow(new GMP("3"), new GMP("2"))); // object(GMP)
98
111
?>
99
112
]]>
100
113
</programlisting>
...
...
@@ -107,7 +120,7 @@ echo pow(-1, 5.5); // PHP <=4.0.6 1.#IND
107
120
<note>
108
121
<para>
109
122
This function will convert all input to a number, even non-scalar values,
110
-
which could lead to <literal>weird</literal> results.
123
+
which could lead to <emphasis>weird</emphasis> results.
111
124
</para>
112
125
</note>
113
126
</refsect1>
...
...
@@ -116,6 +129,11 @@ echo pow(-1, 5.5); // PHP <=4.0.6 1.#IND
116
129
&reftitle.seealso;
117
130
<para>
118
131
<simplelist>
132
+
<member>
133
+
Exponentiation operator
134
+
<link linkend="language.operators.arithmetic"><literal>**</literal></link>
135
+
</member>
136
+
<member><function>fpow</function></member>
119
137
<member><function>exp</function></member>
120
138
<member><function>sqrt</function></member>
121
139
<member><function>bcpow</function></member>
...
...
@@ -124,7 +142,6 @@ echo pow(-1, 5.5); // PHP <=4.0.6 1.#IND
124
142
</para>
125
143
</refsect1>
126
144
</refentry>
127
-
128
145
<!-- Keep this comment at the end of the file
129
146
Local variables:
130
147
mode: sgml
131
148