** 是新的幂运算符,而不是 php 中的 power()

Posted

技术标签:

【中文标题】** 是新的幂运算符,而不是 php 中的 power()【英文标题】:** is new power operator instead of power() in php 【发布时间】:2014-03-15 05:19:54 【问题描述】:

如何在新版本的php(5.6)中使用新版本的Power运算符而不是pow()? 喜欢:

echo pow(2,3);

【问题讨论】:

请阅读wiki RFC - 那里有足够多的样本。 二元运算符的工作方式真的如此令人惊讶吗?通常是a op b 【参考方案1】:

在 php 5.6 + 中有一个示例 ** 运算符

$i = 6;

$i **=2; //output 36

$out = $i ** 3 //output 216

echo 2 ** 3 ** 2; // 512 (not 64)
echo -3 ** 2; // -9 (not 9)
echo 1 - 3 ** 2; // -8
echo ~3 ** 2; // -10 (not 16)

** 优于 pow(,)。 当您尝试编写数学算法时。 ** 是一个强大的操作员。 它和 pow 没有功能上的区别。power operator refrence

【讨论】:

究竟如何“更好”?除了少了几个字符之外,它和 pow 之间没有功能上的区别。这就像在说“工具 A 比工具 B 好,因为工具 A 是 PINK @Marc 根据使用目的可能会更好。例如,如果您要为方程求解器获取用户输入,并且想要使用 exec,您可以简单地将 ^ 替换为 **,而不需要确保将 )pow() 放在正确的地方。 @MarcB - 性能更好,没有函数调用的开销,但以与任何其他算术运算符完全相同的方式显式处理 作为** 的作者,我可以告诉你,它与pow() 的不同之处在于它透明地支持GMP(如果已编译);它可以用于任何需要常量表达式的地方,例如默认值或类常量。 请注意,示例代码中第三行的输出应为$out = $i ** 3 //output 46656,而不是216,因为$i **= 2 分配 36 到$i,因此@987654335 @。 :)

以上是关于** 是新的幂运算符,而不是 php 中的 power()的主要内容,如果未能解决你的问题,请参考以下文章

为啥 F# 中的幂运算符仅适用于浮点数?

prolog中的幂函数

实现基于整数的幂函数 pow(int, int) 的最有效方法

JS 中的赋值运算符是(重新)绑定还是突变?

Swift 中的指数运算符

指数运算符 ^ 和 Math.pow() 之间的区别