最近一朋友准备从java转PHP,帮她写个简单的PHP入门,简单的讲一下java与php的不同。
PS. ueditor实在不会用- -,凑合着看吧
PHP |
Java |
|
文件格式 |
<% %>或是<%php %>把代码包含在里面 保存为.php文件 |
直接书写 保存为.java文件 |
语言类型 |
即时编译执行 |
静态编译执行 |
注释 |
PHP独有 # 这也是单行注释 与java相同点: // 这是单行注释 /* 这是多行注释块 它横跨了 多行 */ |
|
变量命名 |
PHP独有 变量以 $ 符号开头,其后是变量的名称 与java相同: 变量名称必须以字母或下划线开头 变量名称不能以数字开头 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _) 变量名称对大小写敏感($y 与 $Y 是两个不同的变量) |
|
变量声明 |
php属于弱类型,需要的时候直接使用,不用声明 function test(){ $x = 10; echo $x; } 详细的使用方式 http://www.w3school.com.cn/php/php_variables.asp |
强类型,需要声明类型和初始化 public void test(){ int x =10; system.out.println(x); } |
简单的输出 |
echo $x; 或是 var_dump($x) |
system.out.println(x); |
变量类型 |
字符串、整数、浮点数、逻辑、数组、对象、NULL。 虽然PHP在变量声明不用指明类型,但是在语言的机制上还是有这些类型 |
|
普通数组 |
$goods = array(“商品1”,”商品2”); 使用 $goods[0],得到”商品1” 获得数组长度 echo count($goods); |
String[] goods = new String[]{ 商品1”,”商品2”} 使用 goods[0] ,得到”商品1” 获得数组长度 system.out.println(goods.length); |
关联数组 |
$goodsInfo = array(“id” =>”xxxx”,”name” =>”商品1”,”price”=>”20.00”); 使用方法: $goodsInfo[“id”]; |
在java中没有关联数组,想要实现类似功能只能使用map Map<String,String> goodsInfo = new HashMap<String,String>(); goodsInfo.put(“id”,”xxxx”); goodsInfo.put(“name”,”商品1”); goodsInfo.put(“price”,”20.00”); 使用方法: goodsInfo.get(“id”); |
关联数组遍历 |
foreach($goodsInfo as $key => $val){ echo “商品属性:”.$key.”, 值:”.$val; echo “<br/>”; } 输出结果: 商品属性:id, 值:xxxx ……以下省略 |
for(String key : goodsInfo.keySet()){ String str = String.format(“商品属性:%s, 值:%s”, key,goodsInfo.get(key)); system.out.println(str); } 输出结果: 商品属性:id, 值:xxxx ……以下省略 |
运算符 |
太多,懒得写,自己看 http://www.w3school.com.cn/php/php_operators.asp |
|
逻辑条件 |
If If else If elseif else Switch For While 这几个都一样,没啥好说的,说一个php中有,而java中没有的 Foreach 这个和js的差不多,只适用于数组,并用于遍历数组中的每个键/值对。 对于普通数组 foreach ($array as $value) { 直接用$value } 对于关联数组,例子参考上面关联数组里的 foreach ($array as $key=>$value) { 直接用$key和$value } |
|
函数 |
和js里的一样,这里就不写和java的区别了 |
|
内置的全局变量 |
PHP主要运用在web中,所以内置了许多全局变量,和java中使用request获取的一样的,具体解释看网页 |
推荐书籍:《细说PHP》
推荐网站:php100