php
  • javascript
  • ternary-operator
  • unary-operator
  • 2012-03-14 29 views 3 likes 
    3

    我想做Fizzbuzz在PHP中的使用,如果一元,但輸出是不是我所期望的,我不明白爲什麼,所以我的代碼複製粘貼到javascript,現在結果如預期。爲什麼?三元運營商在JavaScript和PHP,不同的輸出

    <script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script> 
    <script> 
    $(function(){ 
    papa ='Javascript Output: '; 
    for($i=1;$i <= 10; $i++){ 
    papa += ($i %5 === 0 && $i %3 === 0) ? 'FizzBuzz' : ($i % 3 === 0) ? 'Fizz' : ($i % 5 === 0) ? 'Buzz' : $i; 
    $('#result').text(papa); 
    } 
    }) 
    </script> 
    <?php 
    echo 'PHP Output: '; 
    for($i=1;$i <= 10; $i++){ 
    $papa ($i %5 === 0 && $i %3 === 0) ? 'FizzBuzz' : ($i % 3 === 0) ? 'Fizz' : ($i % 5 === 0) ? 'Buzz' : $i; 
    echo $papa; 
    } 
    ?> 
    <div id='result'></div> 
    

    輸出

    PHP Output: 12Buzz4BuzzBuzz78BuzzBuzz 
    Javascript Output: 12Fizz4BuzzFizz78FizzBuzz 
    

    回答

    5

    三元運營商在JavaScript(你所謂的 「一元,如果」)使用權的關聯性,並在PHP對於同一經營者左結合。

    是的,這可以是固定的與更括號(以及任何相關的問題算符優先)。

    +0

    也注意到超酷2版本的邏輯「和」和「或」,以及它們在優先級上的差異! (在PHP中) – mpen 2012-03-14 07:06:29

    2
    in PHP, change 
        ($i %5 === 0 && $i %3 === 0) ? 'FizzBuzz' : ($i % 3 === 0) ? 'Fizz' : ($i % 5 === 0) ? 'Buzz' : $i; 
        to: 
        ($i %5 === 0 && $i %3 === 0) ? 'FizzBuzz' : ($i % 3 === 0) ? 'Fizz' : (($i % 5 === 0) ? 'Buzz' : $i); 
    
    相關問題