PHP在乘法运算后返回0


PHP returns 0 after a multiplication operation

我需要将该值临时存储在PHP变量中,因为该值应该与注释一起发送。用户在不输入评论的情况下无法发送评级,这就是我决定这样做的原因。

为什么当PHP计算值时,我的变量会返回零值?

我有这个代码:

<a href='#' onclick='rate(1); return false;' class='one-star'>1</a>

<script type="text/javascript">
     function rate (amnt){
     <?php
         $currentRating = amnt;
         $ratingImageWidth = $currentRating * 25;
         echo "alert($ratingImageWidth)";
     ?>
     }
</script>

注:

  • 它输出一个0的警报
  • $currentRating变量不为null,我尝试将其包含在alert函数中,它返回了正确的值。
  • 我尝试将$currentRating变量转换为int:

  • settype($currentRating, "integer");
  • (int)$currentRating;

    什么都没发生,它仍然返回零。有人知道怎么解决这个问题吗?非常感谢那些愿意提供帮助的人。

  • PHP在服务器上运行,因此您的JavaScript实际上看起来像:

    function rate(amnt) {
        alert(0)
    

    令人惊讶的是,考虑到最后缺失的},它竟然有效。。。

    重点是,你不能用这种方式混合PHP和JS。你为什么不直接做alert(amnt*25)呢?

    为什么要使用PHP?只需在javascript:中进行计算

    <script type="text/javascript">
         function rate (amnt){
             var ratingImageWidth = amnt * 25;
             alert(ratingImageWidth);
         }
    </script>
    

    PHP在浏览器加载页面之前在服务器上运行。页面加载后,Javascript将在客户端的浏览器中运行。两人不能互相打电话,因为他们在不同的地方跑步。

    Php代码在发送给用户之前运行。尝试查看已处理页面的源代码,以了解其工作原理。

    $ php << EOF
    <?php
    echo amnt * 25;
    EOF
    PHP Notice:  Use of undefined constant amnt - assumed 'amnt' in - on line 2
    Notice: Use of undefined constant amnt - assumed 'amnt' in - on line 2
    0
    

    你不能像这样用JavaScript运行PHP改为使用XHR,或坚持使用JavaScript