** 是新的幂运算符,而不是 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()的主要内容,如果未能解决你的问题,请参考以下文章