程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php入門基礎篇-語法

php入門基礎篇-語法

編輯:關於PHP編程

這是一篇簡單的php語法入門篇,有需要的朋友可參考一下。

一、雙引號與單引號
變量可以在雙引號中執行,但用 define 的常量在兩種單、雙引號中都是不可執行的:

 代碼如下 復制代碼

$var = 'sofish';
echo 'im $var'; // => 'im $var'
echo "im $var"; // => 'im sofish'

define('NAME', 'sofish');
echo 'im NAME'; // => 'im NAME'
echo 'im ' . NAME; // => 'im sofish'

在 JS 中引號內不可以渲染任何變量。

二、變量的定義
使用 $ 符,而不是 var 關鍵字;有真正的常量,用 define 函數,一經定義,一可改變。

 代碼如下 復制代碼

// JS 中我們用 var name = 'sofish';
$name = 'sofish';

// JS 中我們用 var NAME = sofish; 而且是可以改變的
define('NAME', 'sofish');

// 在這裡會報錯,因為 NAME 已經被定義,而 JS 可以隨時改變
define('NAME', 'error');

三、數組
排序:

可以使用 shuffle(),在 JS 中我們通常使用 Math.random 來設定在某個范圍內,訪問數組的下標;如果用數字來排序,小數點會被忽略,所以如果想准確地用數字排序,把數字變成字符串,比如 1.2 應寫成 '1.2'。

可以字符串當 key:

 代碼如下 復制代碼

$arr = array('name' => 'sofish', 'age' => '25', 'gender' => 'male');

自動增加索引值:

下面這兩個數據是相同的:

 代碼如下 復制代碼 $arr = array('1' => 'sofish', '25', 'male')
$arr = array('1' => 'sofish', '2' => '25', '3' => 'male')

四、連字符
在 PHP 中使用 .,在 JS 中使用 +。

五、換行符
在雙引號中使用 "n",'n' 是不會轉成換行符的。如果你習慣使用單引號,那麼可以使用 PHP_EOL:

 代碼如下 復制代碼

echo 'im sofish,' . PHP_EOL;
echo "25 years old, n";
echo 'male';

// 想象一下下面這一段,在 stackoverflow 最受歡迎的回答
// 個人不喜歡混用兩種引號,不好看,但未必不好。lol?!
echo 'im sofish' . "n" . '25 ...'在 JS 中,兩種引號內寫 n 都是可行的。

六、if 語句
在 PHP 中另一個分支用 elseif 而在 JS 中使用 else if,中間有一個空格之差。

UPDATE: 2012.02.29 5:28 pm:Andor: "其實 if 分支的另一個分支用 elseif 和 else if 都是可以的"。

七、函數
在 PHP 中不可以使用 (function(){})() 這樣的函數來直接運行一個匿名函數,但是可以創建一個參數有默認值的函數,如:

 代碼如下 復制代碼

function fn($name, $greet = 'good moring '){
    echo $greet . $name;
};

// 當不傳值時顯示默認值,結果 >> 'good morning sofish'

 代碼如下 復制代碼 fn('sofish', 'good morning ');

// 當傳入值的時候替換默認值,結果 >> 'good afternoon sofish'
fn('sofish', 'good afternoon ');作用域,我還是比較喜歡 JS 中的閉包,在 PHP 中,我們來看一下下面的代碼:

 代碼如下 復制代碼 $a = 'hello';
$b = function(){
    echo $a . ' sofish.';
};
$b();

我們的預期結果是,’hello sofish.’。不過,我裡有2個 $b,結果往往另我們意外。在 PHP 中,變量不能在自定義函數內使用,函數內部也不能使用外部已定義的變量(WTF),除非使用 global 關鍵字。上面的函數修改如下,則可使用:

 代碼如下 復制代碼 $a = 'hello';
$b = function(){
    global $a;
    echo $a . ' sofish.';
};
$b();

我們通常說,要慎用全局變量。在這裡就更需要了。

八、list() 函數
很有趣的函數,可以利用數組中的值給一組變量賦值。我們平時在 JS 中是這樣使用一個數組的:

// 返回一個數組,然後,用 `[]` 下標來調用

 代碼如下 復制代碼 var cursorPos = (function(){
     // render ...
     return [posX, posY];
})();

在 PHP 中可以使用 list() 根據數組的內容給一組變量賦值,這樣我們就可以用變量來變量名來訪問我們要用的值,而不是使用下標:

// 用括號內的變量來訪問函數 `cursorPos` 返回的值
list($posX, $posY) = cursorPos();另外,值得一提的另一個有趣函數 ———— isset(),判斷一個值非 NULL。還有諸如 is_array / is_string 這樣的函數,都是在 JS 中沒有提供的。像類型判斷,算是 JS 中的高組內容了,只有比較熟悉和有積累的程序員都知道怎麼做比較合理。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved