PHP 8.4.2 Released!

pow

(PHP 4, PHP 5, PHP 7, PHP 8)

pow指数表現

説明

pow(mixed $num, mixed $exponent): int|float|object

numexponent 乗を返します。

注意:

** 演算子も使えます。

パラメータ

num

使用する基数。

exponent

指数。

戻り値

numexponent 乗を返します。 両方の引数が非負の整数で、かつ結果が 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

?>

注意

注意:

この関数はすべての入力を (スカラー値以外でも) 数値に変換します。 その結果、予想外の 結果を引き起こすことがあります。

参考

  • べき乗演算子 **
  • fpow() - IEEE 754 に従い、数値をべき乗する
  • exp() - e の累乗を計算する
  • sqrt() - 平方根
  • bcpow() - 任意精度数値をべき乗する
  • gmp_pow() - べき乗を計算する

add a note

User Contributed Notes 5 notes

up
55
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.
up
17
raiika
6 years ago
It is official now that you could use

<?php

2
** 3; // 8

// instead of

pow(2, 3); // 8

?>
up
17
gilthansREMOVEME at gmail dot com
18 years ago
Note that pow(0, 0) equals to 1 although mathematically this is undefined.
up
1
Roman
4 years ago
If you use negative numbers, you need to use brackets for using with **

<?php

-1 ** 2; // -1

(-1) ** 2; // 1

?>
up
2
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);
?>
To Top