php和java數據類型和表達式的區別

前段時間學習了下php覺得挺簡單的,不過這只是相對java而言,php簡單了但是還是很有很多細節問題需要注意,爲了順便鞏固下java基礎知識,我把java和php做了對比。這次比較的是數據類型和運算符。

一.數據類型

先來看看php的數據類型劃分:

基本數據類型:整數類型,小數類型【不分單精度和雙精度】,boolean類型,字符串

複合數據類型:數組、對象

特殊數據類型:NULL、資源類型

下面是java數據類型劃分

基本數據類型:數值類型(整數類型【byte,short,int,long】 浮點類型【float,double】)、字符型char、布爾類型

複合數據類型:數組、類、接口


注:php是一種類似js的弱類型語言,變量不需要任何數據類型修飾符,但是java要明確指定數據類型


另外php的小數類型要注意精度的問題,請看下面一段程序:


<?php
    echo "<br/>".PHP_INT_SIZE;
    echo "<br/>".PHP_INT_MAX;
                                                                                                                                                                                                                                                                
    //浮點數的精度是14位,從左邊第一位不是0的數字開始算起
                                                                                                                                                                                                                                                                
    $c=2.13568974566125311;
    $d=2.00000012345678;
                                                                                                                                                                                                                                                                
    echo "<br/>".$c;
    echo "<br/>".$d;
?>

下面是輸出結果:

wKioL1NiMrmCwPE8AABw6BHjLDw340.jpg

就如註釋寫的那樣,php的精度是14位,要從左邊第一個不爲0的數字算起

php中的boolean還有一點特殊之處,下面幾種情況php會把結果看成是false

  • the 布爾值 FALSE 自身    

  • the 整型值 0 (零)    

  • the 浮點型值 0.0 (零)    

  • 空 字符串, 以及字符串 "0"    

  • 不包括任何元素的數組

  • 不包括任何成員變量的對象(僅PHP 4.0 適用)    

  • 特殊類型 NULL (包括尚未設定的變量)    

  • 從沒有任何標記(tags)的XML文檔生成的SimpleXML 對象    


二 運算符的比較

算數運算符方面,java和php基本一致,但是算術運算符有一點差異那就是php中有 ===和 !==。對於第一種是比較嚴格的要求數據類型和值相同;對於位運算符也基本和java一致,但是php沒有無符號右移;php中多了一種賦值運算符 .=,在php中.可以看成連接符


對於java和php運算符的優先級,雖然不用死記硬背但是可以記住幾個最簡單的例如自增++自減--的優先級高於加減乘除,括號的優先級最高


到了這裏建議對於位運算符不瞭解的可以看看這篇文章:

http://blog.csdn.net/walkcode/article/details/1024235

上面的總結可能會有遺漏,希望大家指出。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章