pow
(PHP 4, PHP 5, PHP 7, PHP 8)
pow — 指数表現
パラメータ
num
-
使用する基数。
exponent
-
指数。
戻り値
num
の
exponent
乗を返します。
両方の引数が非負の整数で、かつ結果が int 型の範囲に収まる場合は、結果を int 型で返します。
それ以外の場合は結果を float 型で返します。
PHP の拡張モジュールは、この演算の振る舞いを上書きし、オブジェクトを返させても構いません。
変更履歴
バージョン | 説明 |
---|---|
8.4.0 |
基数が 0 の場合に、
exponent を負数とするのは非推奨となりました。
|
例
例1 pow() の例
<?php
var_dump(pow(2, 8)); // int(256)
echo pow(-1, 20), PHP_EOL; // 1
echo pow(0, 0), PHP_EOL; // 1
echo pow(10, -1), PHP_EOL; // 0.1
var_dump(pow(new GMP("3"), new GMP("2"))); // object(GMP)
echo pow(-1, 5.5); // NAN
?>
注意
注意:
この関数はすべての入力を (スカラー値以外でも) 数値に変換します。 その結果、予想外の 結果を引き起こすことがあります。
+add a note
User Contributed Notes 5 notes
chris at ocportal dot com ¶
12 years ago
Many notations use "^" as a power operator, but in PHP (and other C-based languages) that is actually the XOR operator. You need to use this 'pow' function, there is no power operator.
i.e. 3^2 means "3 XOR 2" not "3 squared".
It is particular confusing as when doing Pythagoras theorem in a 'closet points' algorithm using "^" you get results that look vaguely correct but with an error.
raiika ¶
6 years ago
It is official now that you could use
<?php
2 ** 3; // 8
// instead of
pow(2, 3); // 8
?>
gilthansREMOVEME at gmail dot com ¶
18 years ago
Note that pow(0, 0) equals to 1 although mathematically this is undefined.
Roman ¶
4 years ago
If you use negative numbers, you need to use brackets for using with **
<?php
-1 ** 2; // -1
(-1) ** 2; // 1
?>
scott at arciszewski dot me ¶
10 years ago
As of PHP 5.6.0alpha2, there is now an exponentiation operator. If this is kept in the final release, it may be worth noting here.
<?php
// These two will be equivalent as of PHP 5.6.0
$x = $y ** 2;
$x = pow($y, 2);
?>