跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 关于 PHP 的一个**运算问题
未分類
30 9 月 2020

关于 PHP 的一个**运算问题

关于 PHP 的一个**运算问题

資深大佬 : absolutelynull 0

<?php  $n = -2;  echo $n ** 2;  // $n = -2; -2 ** 2 = 4  echo '|';  echo -2 ** 2; //           -2 ** 2 = 4  //结果为: 4|-4  

// 正常来说的话 -2 ** 2 = -4 的吧

为啥把-2 赋值给一个变量之后 就是 $n**2=4,其实$n=-2

大佬有話說 (16)

  • 資深大佬 : xiri

    乘方的优先级比减号高,你的第二个实际相当于 0-(2**2)
    而第一个的话实际上是先计算了$n=0-2,再去乘方,相当于(-2)**2

  • 資深大佬 : xiri

    @xiri 突然发现你说“ 正常来说的话 -2 ** 2 = -4 的吧”,感觉有点迷惑啊。
    负二的平方是等于四啊,二的平方再取负数是负四,说白了就是运算符优先级的问题,符号一般是处理成零减某某某的,优先级当减号看

  • 資深大佬 : iyaozhen

    $n = (-2)
    (-2)^2 = 4

    你说的是这样 eval(“$n ** 2”) = eval(“-2 ** 2”) = eval(“-(2**2)”)

    这个又不是字符串拼接,不是拼好了再执行

  • 資深大佬 : lovecy

    整了两年 PHP 了,第一次发现还有这运算符,最奇葩的是优先级居然是第二高的,仅次于 clone/new,真的迷惑。。。。。。。。。。。

  • 資深大佬 : sparrww

    你平时用的到吗,不讨论骚操作

  • 資深大佬 : cccp2020

    负数的平方本来就是正数吧 ** 自乘也是求平方的

    -2 ** 2 应该是运算符优先级导致的, – ( 2 ** 2 )

  • 資深大佬 : JJstyle

    虽然反常,但是合理,可以这样:

    php > echo (-2) ** 2;
    4

  • 資深大佬 : Chappako

    用 bcpow() 吧

  • 資深大佬 : ruyu

    其实 python -2 ** 2 也是 -4

  • 資深大佬 : iNaru

    js 直接报错
    关于 PHP 的一个**运算问题

  • 資深大佬 : chaogao2016

    我搞了 4 年 php,也是第一次见这个运算符

  • 主 資深大佬 : absolutelynull

    -.-!!!!

  • 資深大佬 : wanglilong

    也只有面试题会有这种,实际开发过程中这样写怕是会被打吧

  • 資深大佬 : foundnot404

    其实这东西跟编程语言没有任何关系,**就是乘方运算符,自己想一下数学中-2^2 是多少看看?
    乘方的优先级是最高的,-2^2=-(2^2)=-4,(-2)^2=4,没有任何问题

  • 資深大佬 : lovecy

    @iNaru JS 没有**这个运算符,可以直接用^,比如
    > -2^2
    < -4

  • 資深大佬 : lovecy

    @foundnot404 是哦,仔细想想确实乘、除、乘方这些优先级都比正负号要高

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具