PHP Conference Japan 2024

pow

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

pow指數運算式

說明

pow(混合 $num, 混合 $exponent): 整數|浮點數|物件

傳回 numexponent 次方。

注意:

可以使用 ** 運算子替代。

參數

num

要使用的基底

exponent

指數

傳回值

num 乘以自身 exponent 次。如果兩個參數都是非負整數,且結果可以表示為整數,則結果將以 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() - 將數字乘以次方

新增註解

使用者提供的註解 5 則註解

chris at ocportal dot com
12 年前
許多程式語言使用「^」作為次方運算子,但在 PHP(和其他基於 C 的語言)中,它實際上是 XOR 運算子。您需要使用 `pow` 函式,沒有次方運算子。

也就是說,3^2 表示「3 XOR 2」,而不是「3 的平方」。

這一點尤其令人困惑,因為在「最近點」演算法中使用「^」計算畢氏定理時,您會得到看起來大致正確但卻帶有誤差的結果。
raiika
6 年前
現在官方可以使用

<?php

2
** 3; // 8

// 取代

pow(2, 3); // 8

?>
gilthansREMOVEME at gmail dot com
17 年前
請注意,`pow(0, 0)` 等於 1,儘管在數學上這是未定義的。
Roman
3 年前
如果使用負數,則需要使用括號來搭配 ** 運算子。

<?php

-1 ** 2; // -1

(-1) ** 2; // 1

?>
scott at arciszewski dot me
10 年前
從 PHP 5.6.0alpha2 開始,新增了指數運算子。如果這一點保留在最終版本中,則可能值得在此處說明。

<?php
// 從 PHP 5.6.0 開始,以下兩者將等效
$x = $y ** 2;
$x = pow($y, 2);
?>
To Top