PHP命名空間namespace 什么是命名空間?從廣義上來(lái)說(shuō),,命名空間是一種封裝事物的方法,。具體舉個(gè)例子,文件 foo.txt 可以同時(shí)在目錄/home/greg 和 /home/other 中存在,,但在同一個(gè)目錄中不能存在兩個(gè) foo.txt 文件。 那么如果想要訪問(wèn) foo.txt 文件,,我們必須將目錄名以及目錄分隔符放在文件名之前得到 /home/greg/foo.txt,。這個(gè)原理應(yīng)用到程序設(shè)計(jì)領(lǐng)域就是命名空間的概念。 在PHP中只有類,,函數(shù),,常量受命名空間的影響,PHP命名空間是虛擬出來(lái)的目錄,,實(shí)際目錄并不存在,,而且同一個(gè)文件中可以有多個(gè)命令空間。(非常不建議這樣使用) 命名空間的別名 use xxx\xxx\xxx\xxx as abc JAVA包package 與PHP命名空間的作用類似,,用分類,;但更像是PHP在CMS編程過(guò)程中,把專門的類文件(java的class文件)放在一個(gè)文件目錄中,。也類似于 file_put_contents('/package/xxx.class','javac xxx.java'),,但是分得更加地細(xì),。 比如 package org.eclipse.core.internal.boot =>file_put_contents('/org/eclipse/core/internal/boot/xxx.class','javac xxx.java'); 引用import 單獨(dú)引用:import packageName.className; 等于PHP的 include packageName/classFile; 包引用:import packageName.*; PHP中沒(méi)有這個(gè)功能 類class 1.聲明:java的class可以定義為public,此時(shí)文件名要與公共類完全一致,,PHP中沒(méi)有這個(gè)功能 如果不包含公共類,,則class與PHP聲明一樣 java每個(gè)類會(huì)生成一個(gè).class文件 2.使用:java是使用"."點(diǎn)號(hào)引用屬性與方法,PHP是使用"->"引用屬性與方法,,沒(méi)有點(diǎn)號(hào)用法 3.注釋:一樣,,都可以使用//或/**/,文檔注釋也一樣/** 4.類修飾符:abstract(同) ,,final(同) ,,public(PHP沒(méi)有,語(yǔ)法錯(cuò)誤) 5.變量修飾符: 靜態(tài)變量修飾符 static(同) 靜態(tài)初始化器 static{}(PHP沒(méi)有) 最終常量 final(同) (建議用static代替) 易失變量 volatile(PHP沒(méi)有) 6.方法修改飾 抽象方法 abstract(同) 靜態(tài)方法 static (同) 最終方法 final(同) 本地方法 native(PHP沒(méi)有) 多線程同步方法 synchronized(PHP沒(méi)有) 7.訪問(wèn)控制符,,JAVA比PHP多了包的概念 JAVA的public可以修改類,,PHP不可心;其他同 JAVA的默認(rèn)是同一包中可見(jiàn),,PHP默認(rèn)是任何地方可見(jiàn) 變量的定義 1.組成:JAVA:字母,、數(shù)字、標(biāo)點(diǎn),;PHP:字母,、數(shù)字 2.開(kāi)頭:JAVA:字母、$,、_,;PHP:$ 3.區(qū)分大小寫:(同) 4.保留關(guān)鍵字:JAVA有很多;PHP沒(méi)有,,因?yàn)橐?開(kāi)頭嘛 5.賦值:定義賦值,,簡(jiǎn)單賦值;(同) 6.變量的作用范圍:代碼塊{}內(nèi)有效,;(同) 7.成員變量與局部變量:(作用同,,使用方法不同) 數(shù)據(jù)類型 1.基本數(shù)據(jù)類型 JAVA:byte(1) , short(2) , int(4) , long(8) , float(4,F) , double(8默認(rèn)) , char(2) , boolean(1) PHP :integet , float , double , string 2.對(duì)象數(shù)據(jù)類型 基本對(duì)象數(shù)據(jù)類型:Byte,Short,Integet,Long,Float,Double,Character,Boolean JAVA:String,Date 對(duì)象數(shù)據(jù)類型才有方法,基本數(shù)據(jù)類型沒(méi)有方法 3.JAVA沒(méi)有復(fù)合類型(array,object),,特殊類型(resource ,NULL) 好吧,,PHP是弱類型,這些類型對(duì)PHP通通沒(méi)用 4.引用數(shù)據(jù)類型 JAVA中所有的對(duì)象數(shù)據(jù)類型都為引用(對(duì)象=對(duì)象,,同一個(gè)對(duì)象,,PHP同) 5.數(shù)組數(shù)據(jù)類型 聲明和初始化同C語(yǔ)言 運(yùn)算符: JAVA 算術(shù)運(yùn)行符:+、-,、*,、/、% 賦值運(yùn)行符:+=、-=,、*=,、/=、%= 自增/自減運(yùn)行符:++,、-- 關(guān)系運(yùn)算符:==,、>、<,、>=,、<=、!= 邏輯運(yùn)行符:&&,、||,、!,、^ (PHP還有文字的AND OR NOT XOR) PHP,,除了上面的 類型運(yùn)算符:instanceof 數(shù)組運(yùn)算符:+、==,、===,、!=、<>,、!== 字符串運(yùn)算符:+ 執(zhí)行運(yùn)算符:`` 錯(cuò)誤控制運(yùn)行符:@ 方法 1.定義方法 JAVA有返回值類型,,PHP必須有關(guān)鍵字function 2.參數(shù)傳遞 值調(diào)用,引用調(diào)用(同) PHP有獲取參數(shù)func_get_arg,,有可變方法 3.特殊方法 JAVA中的main(String args[]) 循環(huán)與流程控制 條件語(yǔ)句:if,if-else,if-else if PHP可以寫elseif 分支語(yǔ)句:switch JAVA只能傳遞int或char類型,,與PHP同 循環(huán)控制語(yǔ)句:for,while,do-while, 控制語(yǔ)句:break,continue,label,return PHP不需要定義label,直接break 1退出第1層,break 2退出第2層循環(huán),比JAVA智能 |
|