php語法同java語法的基本區別(例項專案需求,php才能熟)
一、總結
看下面
二、PHP基本語法以及和Java的區別
.表示字串相加
->同Java中的.
$作為變數的字首,除此之外,變數名稱定義規則同Java
引數傳遞和方法返回時傳引用需要加字首&
示例程式碼:
function f(&$a){}//方法引數值以引用形式傳入
functioin & f(){}//方法返回值以引用形式返回
Java中反射呼叫方法對應PHP中的可變函式:var a="a";a="a";a();
PHP在定義變數時較Java強大一點,可以定義可變變數,也就是說在定義變數時,變數名本身可以用一個變數。
示例程式碼:
var a=”a”;vara=”a”;var a=”usea”;//a=”usea”;// a是一個使用a是一個使用a的值作為變數名的變數,也可以使用var {{a}=”use a”;
PHP的類在使用時必須先載入,否則會報錯,不同於Java只要使用到類都會導致類自動載入。載入類的程式碼如下:
function my_autoloader ( class ) {
include ‘classes/’ .class ) { include ‘classes/’ .class . ‘.class.php’ ;
}
spl_autoload_register ( ‘my_autoloader’ );
PHP沒有多執行緒
PHP常量的定義不是使用final而是用defined()函式。示例:define ( “CONSTANT” , “Hello world.” );
// PHP 5.3.0 後還支援這種方式定義:const CONSTANT = ‘Hello World’ ;
PHP呼叫父類的建構函式不是使用super(),而是parent::__construct()。
PHP有解構函式,類似Java的finalize方法。例如:function __destruct () {print “Destroying “;}
PHP使用this表示當物件,這點同Java的this
PHP使用parent表示父類,這點同Java的super
PHP使用self表示當前類,Java沒有這個關鍵字,也不需要使用表示類。
PHP在呼叫本類中的靜態變數和方法時,必須使用self關鍵字和::,示例程式碼:
class A(){
public static function foo () {echo “foo”;}
self :: foo ();
}
如果不在本類中則直接使用類名:
class A(){
public static function foo () {echo “foo”;}
}
A :: foo ();
三、PHP基礎語法與java的差異(一)
個人覺得在學習語言時,可以通過比較來進行學習。由於長時間寫java程式碼,對java的基本語法還算熟悉,現在轉學php,就php中基本語法與java基本語法差異進行比較。
1. PHP是一種指令碼語言,程式碼在伺服器上執行,而結果以純文字返回瀏覽器。
2.PHP能夠執行在各種不同的平臺中:比如windows,linux,MaxOS等。
3.PHP的指令碼能夠存放在文件的任何位置,且以 <?php 開頭,以 ?> 結尾。
4.PHP的註釋: PHP支援三種註釋方式:
A.雙斜槓 例如://這是申明一個變數
B.#符號 例如:#這是申明一個變數
C./**/ 例如:/*這是申明一個變數*/
java同樣支援三種註釋方式:
A.雙斜槓 例如: //這是申明一個變數
B./**/ 例如: /*這是申明一個變數*/
C./***/ 例如: /**
*這是申明一個變數
*/
5.PHP中的大小寫敏感問題: 在 PHP 中,所有使用者定義的函式、類和關鍵詞(例如 if、else、echo 等等)都對大小寫不敏感,而變數則是大小寫敏感的。
而在java中,所有函式名,關鍵字,類,變數等都是大小寫敏感的。
6.PHP的變數申明:PHP類似於Javascript,兩者都屬於是若引用型別,申明的時候不用指明其型別。 而java則是強引用型別,申明時必須指明其型別。
PHP中申明變數的方式是:$X = 7; 注意: java和PHP變數的命名規則相同。
7.PHP中變數的作用域:
A. global (全域性的): 只能在函式以外進行訪問
B. Local(區域性的): 只能在方法體重進行訪問
C.static (靜態的)
java中全域性變數允許在方法中進行訪問。
8.global關鍵字: 可以在函式體內使用global關鍵字對全域性變數進行訪問。
例如:
<span style="white-space:pre"> </span><pre name="code" class="html"><?php
$x=5;
$y=10;
function myTest() {
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y; // 輸出 15
?>
9.PHP中的echo和print的差別:
echo能夠輸出一個以上的字串,速度比print稍快
print只能輸出一個字串,並返回1 (與之不同,java可以使用print輸出一行語句)。
注意: PHP中print能夠在雙引號中輸出變數,而java中雙引號中不能輸出變數。
例如:
<pre name="code" class="html">$txt2="W3School.com.cn";
echo "Study PHP at $txt2";
同樣的也能輸出陣列中的任意元素:
echo "My car is a {$cars[0]}";
echo與print在有無括號的情況下都能使用。例如:echo與echo();
10.PHP中的類: 就其實現過程與java相同,都是用了關鍵字class ,但其中的資料宣告卻不相同。
<?php
class Car
{
var $color;
function Car($color="green") {
$this->color = $color;
}
function what_color() {
return $this->color;
}
}
?>
11.PHP中的字串可以使用雙引號或者是單引號表示。但是在java中只能使用雙引號。
例如:“string" 'string'