1. 程式人生 > >服務端web開發:PHP簡介以及常見語法

服務端web開發:PHP簡介以及常見語法

blog tex lan 客戶端 opera 很多 私有屬性 net 生成

服務端web開發

在講解什麽是服務端開發之前,讓我們先思考幾個問題

  • 網站訪問:

    當我們做好了.html的網站,如何讓別人(朋友,用戶)可以訪問到呢?

    • 使用U盤拷貝,QQ發送文件等直接將文件共享的方式?---不靈活
    • 將網站放在服務器上,讓用戶通過網址訪問?---絕大多數網站的做法
  • 網站內容更新:

    如果用戶每次訪問我們的網站看到的內容都是一樣的,在最初的新鮮勁過去以後估計就再也不想訪問我們的網站了o(╯□╰)o,那麽如何去更新網站的內容呢?

    • 當有內容,圖片,或者界面需要更新是,直接修改.html文件?---費時費力
    • 通過某種手段,當有新的消息,自動的完成網站的更新?---動態網站
  • 如何實現網站動態化

    網站的本質,其實就是一堆按照某種規則排列的字符串而已,如果我們可以通過某種方式,讓電腦動態生成這些字符串,是不是就實現了網站的動態化?

    • 想要讓電腦幹事情,可以通過編程語言來實現.
    • 編程語言的編寫位置為服務器,因為用戶是問服務器要網站的
    • 服務器,通過編程語言讓用戶訪問的網站動態化叫做:服務端web開發
  • 可選開發方式: 雖然基本上所有可以返回字符串的編程語言都能夠實現這個功能,目前市場主流開發語言有:Java,PHP,ASP.Net,Ruby,Python,Erlang等.雖然可以選擇的開發語言有很多種,但是本質都是一樣的:

    當用戶訪問網站了,根據`某些邏輯`,生成對應的`HTML,CSS,JS`代碼給用戶
    

PHP簡介

PHP在眾多的編程語言中,是比較容易上手,結合我們搭建的WAMP環境就能夠開始學習了

  • PHP代碼執行方式: 服務端web編程寫好的代碼,需要通過瀏覽器訪問服務器,在服務器端執行,然後返回給用戶結果,如果直接使用瀏覽器打開,就會解析為文本

PHP常見語法

註,這裏只列舉常用的PHP語法,更為詳細的語法教程可以查閱w3cschool_PHP教程

  • 文件定義,註釋: PHP文件以.php結尾,代碼的編寫位置在<?php 寫在這裏?>.註釋的寫法跟js一致

    <?php
      //這是單行註釋
      /*
          這是多行註釋
      */
    ?>

  • PHP變量規則:

    • 變量以$符號開頭,其後是變量的名稱
    • 變量名稱必須以字母或下劃線開頭
    • 變量名稱不能以數字開頭
    • 變量名稱只能包含字母數字字符和下劃線(A-z0-9 以及_
    • 變量名稱對大小寫敏感
// 變量以`$`符號開頭,其後是變量的名稱
// 變量名稱必須以字母或下劃線開頭
$a;
$b;
$a1;
$_abc;

// 變量名稱不能以數字開頭
// 變量名稱只能包含字母數字字符和下劃線(`A-z`、`0-9` 以及` _`)
// 下面這些是錯誤的變量定義
$1;
$哈哈;
$^&*;

//變量名稱對大小寫敏感(`$y` 與`$Y` 是兩個不同的變量)
// 下面定義的兩個變量是不同的,大寫,小寫x
$x;
$X;

  • 數據類型 PHP支持的數據類型包括:字符串,整數,浮點數,布爾,數組,對象,NULLL(註:由於對象中可以使用函數,故對象的語法在下文中會提及)
    • 定義字符串時需要註意:
      • 單引號:`` 內部的內容只是作為字符串
      • 雙引號:"" 如果內部是PHP的變量,那麽會將該變量的值解析
    • 字符串連接:不同於JavaScript,PHP中使用.進行連接
// 字符串
$str = ‘123‘;

// 字符串連接
$str2 = ‘123‘.‘哈哈哈‘;

// 字符串

// 整數
$numA = 1; //正數
$numB = -2;//負數

// 浮點數
$x = 1.1;

// 布爾
$a = true;
$b = false;

// 數組
$arr = array(‘123‘,123)

  • 運算符 PHP中的運算符跟JavaScript中的基本一致,用法也基本一致

    • 算數運算符: +,-,/,*,%
    • 賦值運算符: x = y,x += y,x -= y 註:這裏列舉的並不完全,更為詳細的PHP運算符教程請查閱w3cschool_PHP運算符
<?php 
$x=10; 
$y=6;
echo ($x + $y); // 輸出 16
echo ($x - $y); // 輸出 4
echo ($x * $y); // 輸出 60
echo ($x / $y); // 輸出 1.6666666666667
echo ($x % $y); // 輸出 4
?>

  • 函數: PHP雖然系統內建了一些函數,但是這不影響我們定義自己的. 函數的作用就是在代碼中可以重復使用的語法塊,頁面加載的時候不會執行,只有在被調用的時候才會執行
// 基礎語法
function functionName() {
  這裏寫代碼
}

// 無參數 無返回值的函數
function sayhi(){
    echo "Hello World";
}

// 有參數 無返回值的函數
function sayName($name){
    echo $name.‘你好哦‘;
}
// 調用
sayName(‘小狐貍‘);

// 有參數,參數有默認值的函數
function sayFood($food=‘西蘭花‘){
    echo $food.‘好好吃‘;
}
// 調用
sayFood(‘西葫蘆‘);// 如果傳入參數,就使用傳入的參數
sayFood();// 如果不傳入參數,直接使用默認值

// 有參數,有返回值的函數
function sum($a,$b){
    return $a+$b
}
sum(1,2);// 返回值為1+2 = 3

  • 對象 PHP中允許使用對象這種,自定義數據類型. 使用時必須先聲明,實例化之後才能夠使用
// 定義最基礎的類
class Fox{

        public $name = ‘itcast‘;
        public $age = 10;
}
$fox = new $fox;
// 對象屬性取值
$name = $fox->name;
// 對象屬性賦值
$fox->name = ‘小狐貍‘;

// 帶構造函數的對象
class fox{
    // 私有屬性,外部無法訪問
    var $name = ‘小狐貍‘;
    // 定義方法 用來獲取屬性
    function Name(){
    return $this->name;
    }
    // 構造函數,可以傳入參數
    function fox($name){
    $this->name = $name
    }
}
    // 定義了構造函數 需要使用構造函數初始化對象
    $fox = new fox(‘小狐貍‘);
    // 調用對象方法,獲取對象名
    $foxName = $fox->Name();

  • 內容輸出: echo:PHP語句直接使用即可,輸出字符串 print_r():函數輸出復雜數據類型,比如數組,對象 var_dump():函數輸出詳細信息,如對象、數組
$arr =array(1,2,‘123‘);

echo‘123‘; 
// 結果為 123

print_r($arr);
// 結果為 Array ( [0] => 1 [1] => 2 [2] => 123 )

var_dump($arr);
/* 結果為 
    array
  0 => int 1
  1 => int 2
  2 => string ‘123‘ (length=3)
*/

  • 循環語句: 這裏只列舉了foreach,for循環
// for 循環
for ($x=0; $x<=10; $x++) {
  echo "數字是:$x <br>";
} 

// foreach 循環
$colors = array("red","green","blue","yellow"); 
// 參數1為循環的對象,參數2會將對象的值挨個取出,直到最後
// 如果循環的是對象的話,輸出的是對象屬性的值
foreach ($colors as $value) {
  echo "$value <br>";
}
輸出結果為
/*
red 
green 
blue 
yellow 
*/

  • header()函數 用來向客戶端(瀏覽器)發送報頭,如果出現中文無法顯示,可以嘗試在PHP代碼頂部添加 如下代碼
header("content-type:text/html; charset=utf-8")

服務端web開發:PHP簡介以及常見語法