php基礎入門

來源:互聯網
上載者:User
一、序言

由於新公司的需要,我也就從原來的asp專向了,php的學習中。希望通過自己的學習能夠儘快的熟悉瞭解php

二、php獨特的文法特色

1、引號問題

在php中單引號和雙引號的作用基本相同,但是有些場合卻又是不同的

都可以用來包含要引用字串

";    echo $str2;?>

但是單引號中的內容只被解析成為字串,而雙引號可以在字串中加入變數

";    echo $str2;?>

結果就自行運行一下,這裡不解釋

2、PHP常量

PHP相比於ASP,存在一些系統封裝好的常量,這些有利於我們的使用,同時還支援我們自行封裝常量

常見的常量有:

如下一些常用的PHP系統常量:

__FILE__ 當前PHP檔案名稱

__LINE__ 當前PHP檔案中所在的行數

__FUNCTION__ 當前所執行的函數

__CLASS__ 當前所執行的類

PHP_VERSION PHP的版本

PHP_OS 當前伺服器的作業系統

TRUE 同true

FALSE 同false

E_ERROR 到最近的錯誤處

E_WARNING 到最近的警告處

E_PARSE 文法有錯誤處

E_NOTICE PHP語言中有異常處

M__PI 圓周率

M__E 科學常數e

M__LOG2E 以2為底e的對數

M_LOG10E 以10為底e的對數

M_LN2 2的自然對數

M_LN10 10的自然對數

PHP系統常量的內容就介紹到這裡,希望對大家有所協助。

舉個例子:

 

列印出來的結果是:3,表示當前是在第三行執行

在常量的使用中,我們一般是這樣使用的

1、使用define方法來定義

 

2、使用const關鍵字來定義
例如:const p=2;這樣就確定了一個常量p,值為2

3、常量的檢驗

對於一個大型項目而言,我們不知道某個參數是否為變數還是常量,如果是常量的話,那麼重新賦值會發生錯誤,所以我們要通過defined方法來檢驗是否為某個參數是否為常量

 

3、PHP字串操作

下面以一個綜合的PHP字串操作來講解一下

";    //截取指定位置的字串(從第2個字元到最後)    $str1 = substr($str,2);    //截取指定位置的字串(從第2個字元開始往後截取3位)    $str2 = substr($str,2,2);    //以指定間距分割字串    $str3 = str_split($str);    $str4 = str_split($str,2);    print_r($str4)."
"; //以指定字元分割字串 $str = "PHP JAVA JS HTML CSS"; $str5 = explode(" ",$str); print_r($str5)."
";?>

字串串連符

這裡的字串串連符跟其他語言的串連符有些不同,是通過"."來起到串連的,而在PHP中.=相當於其他語言的+=

錯誤控制運算子

PHP中提供了一個錯誤控制運算子“@”,對於一些可能會在運行過程中出錯的運算式時,我們不希望出錯的時候給客戶顯示錯誤資訊,這樣對使用者不友好。運算式所產生的任何錯誤資訊都被存放在變數$php_errormsg中,此變數在每次出錯時都會被覆蓋,所以如果想用它的話必須儘早檢查。

 

error_reporting(0); 禁止顯示PHP警告提示

更多的字串操作詳見:http://www.jianshu.com/p/91ed5dc67977

4、可變函數

 

原理是:首先定義個一個name方法,然後是定義一個變數內容為name,最後一句其實就是$n()=name+(),也就是相當於執行了name這個方法

5、常見的內建函數

str_replace 可以實現字串的替換

function_exists 判斷一下函數是否存在

method_exists 可以用來檢測類的方法是否存在

class_exists類是否定義可以使用

6、PHP物件導向

一個簡單的PHP物件導向

name;        }    }
  //執行個體化 $per=new Person(); $per->name='xiaoLi'; echo $per->Hobby();?>

特別注意->後面的變數不能加上"$"

一般我們常見的有public、private、protected這三個修飾符

要注意的是方法和屬性也可以被static修飾,但是被修飾的方法或者是屬性不可以使用->來調用,應該要換成::

 

建構函式

在PHP中也存在建構函式,但是書寫上與asp有些不通過

 

如果是繼承關係中,子類可以通過parent::__construct()來調用父類的建構函式

 

在static方法中,不允許使用$this來對自身的調用,應該要寫成self,同時我們應該還要注意::這個符號後面的$是不能省略的

";    echo $per::GoodAt();?>

_destruct(),這個方法為解構函式,但是由於PHP中存在記憶體回收機制,所以這個不常用

重載

這裡的重載跟C#中方法的重載不是同一個定義,這裡的重載指的是,對屬性的相關操作

class Car {  private $ary = array(); //建立屬性  public function __set($key, $val) {     $this->ary[$key] = $val;  }  //擷取屬性  public function __get($key) {      if (isset($this->ary[$key])) {          return $this->ary[$key];      }      return null;  }  //判斷屬性是否存在  public function __isset($key) {      if (isset($this->ary[$key])) {          return true;      }      return false;  }  //釋放屬性  public function __unset($key) {      unset($this->ary[$key]);  }}$car = new Car();$car->name = '汽車';  //name屬性動態建立並賦值echo $car->name;

方法的重載通過 call 來實現,當調用不存在的方法的時候,將會轉為參數調用call方法,當調用不存在的靜態方法時會使用 __callStatic 重載。

class Car {  public $speed = 0;  public function __call($name, $args) {      if ($name == 'speedUp') {          $this->speed += 10;      }  }}$car = new Car();$car->speedUp(); //調用不存在的方法會使用重載echo $car->speed;

其他進階的操作詳見:http://www.jianshu.com/p/26ac93b6bf32

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.