PHP在乘法运算后返回0

时间:2012-08-19 21:53:10

标签: php integer

我需要暂时将值存储在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;

    什么都没发生,它仍然返回Zero。有谁知道如何解决这个问题?非常感谢那些愿意帮助的人。

  • 4 个答案:

    答案 0 :(得分:3)

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

    function rate(amnt) {
        alert(0)
    

    令人惊讶的是,它最终适用于最后失踪的} ......

    关键是,你不能以这种方式混合PHP和JS。你为什么不这样做alert(amnt*25)

    答案 1 :(得分:2)

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

    答案 2 :(得分:1)

    $ 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

    答案 3 :(得分:1)

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

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

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