php真正的威力源自它的函數,內建了1000個函數,可以參考PHP 參考手冊。
自訂函數:
<span style="color: #008080;">1</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> functionName() </span><span style="color: #008080;">2</span> <span style="color: #000000;">{ </span><span style="color: #008080;">3</span> <span style="color: #000000;">要执行的代码; </span><span style="color: #008080;">4</span> }
函數命名的準則:
<span style="color: #008080;"> 1</span> <?<span style="color: #000000;">php </span><span style="color: #008080;"> 2</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> Site { </span><span style="color: #008080;"> 3</span> <span style="color: #008000;">/*</span><span style="color: #008000;"> 成员变量 </span><span style="color: #008000;">*/</span> <span style="color: #008080;"> 4</span> <span style="color: #0000ff;">var</span> <span style="color: #800080;">$url</span><span style="color: #000000;">; </span><span style="color: #008080;"> 5</span> <span style="color: #0000ff;">var</span> <span style="color: #800080;">$title</span><span style="color: #000000;">; </span><span style="color: #008080;"> 6</span> <span style="color: #008080;"> 7</span> <span style="color: #008000;">/*</span><span style="color: #008000;"> 成员函数 </span><span style="color: #008000;">*/</span> <span style="color: #008080;"> 8</span> <span style="color: #0000ff;">function</span> setUrl(<span style="color: #800080;">$par</span><span style="color: #000000;">){ </span><span style="color: #008080;"> 9</span> <span style="color: #800080;">$this</span>->url = <span style="color: #800080;">$par</span><span style="color: #000000;">; </span><span style="color: #008080;">10</span> <span style="color: #000000;"> } </span><span style="color: #008080;">11</span> <span style="color: #008080;">12</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> getUrl(){ </span><span style="color: #008080;">13</span> <span style="color: #0000ff;">echo</span> <span style="color: #800080;">$this</span>->url . <span style="color: #ff00ff;">PHP_EOL</span><span style="color: #000000;">; </span><span style="color: #008080;">14</span> <span style="color: #000000;"> } </span><span style="color: #008080;">15</span> <span style="color: #008080;">16</span> <span style="color: #0000ff;">function</span> setTitle(<span style="color: #800080;">$par</span><span style="color: #000000;">){ </span><span style="color: #008080;">17</span> <span style="color: #800080;">$this</span>->title = <span style="color: #800080;">$par</span><span style="color: #000000;">; </span><span style="color: #008080;">18</span> <span style="color: #000000;"> } </span><span style="color: #008080;">19</span> <span style="color: #008080;">20</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> getTitle(){ </span><span style="color: #008080;">21</span> <span style="color: #0000ff;">echo</span> <span style="color: #800080;">$this</span>->title . <span style="color: #ff00ff;">PHP_EOL</span><span style="color: #000000;">; </span><span style="color: #008080;">22</span> <span style="color: #000000;"> } </span><span style="color: #008080;">23</span> <span style="color: #000000;">} </span><span style="color: #008080;">24</span> ?>
解析如下:
類別使用 class 關鍵字後加上類別名稱定義。
類別名後的一對大括號({})內可以定義變數與方法。
類別的變數使用 var 來宣告, 變數也可以初始化值。
函數定義類似 PHP 函數的定義,但函數只能透過該類別及其實例化的物件存取。
類創建後,我們可以使用 new 運算符來實例化該類的對象,訪問對象成員使用->訪問,不再是.,使用new Site調用無參構造函數,可以不帶括號:
<span style="color: #008080;">1</span> <span style="color: #800080;">$runoob</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> Site; </span><span style="color: #008080;">2</span> <span style="color: #800080;">$taobao</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> Site; </span><span style="color: #008080;">3</span> <span style="color: #800080;">$google</span> = <span style="color: #0000ff;">new</span> Site;
<span style="color: #008080;">1</span> <span style="color: #800080;">$runoob</span>->setTitle( "菜鸟教程" );
使用_construct命名建構子
<span style="color: #008080;">1</span> <span style="color: #0000ff;">function</span> __construct( <span style="color: #800080;">$par1</span>, <span style="color: #800080;">$par2</span><span style="color: #000000;"> ) { </span><span style="color: #008080;">2</span> <span style="color: #800080;">$this</span>->url = <span style="color: #800080;">$par1</span><span style="color: #000000;">; </span><span style="color: #008080;">3</span> <span style="color: #800080;">$this</span>->title = <span style="color: #800080;">$par2</span><span style="color: #000000;">; </span><span style="color: #008080;">4</span> }
與建構子相反,當物件結束其生命週期時(例如物件所在的函數已調用完畢),系統會自動執行析構函數
<span style="color: #008080;"> 1</span> <?<span style="color: #000000;">php </span><span style="color: #008080;"> 2</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> MyDestructableClass { </span><span style="color: #008080;"> 3</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> __construct() { </span><span style="color: #008080;"> 4</span> <span style="color: #0000ff;">print</span> "构造函数\n"<span style="color: #000000;">; </span><span style="color: #008080;"> 5</span> <span style="color: #800080;">$this</span>->name = "MyDestructableClass"<span style="color: #000000;">; </span><span style="color: #008080;"> 6</span> <span style="color: #000000;"> } </span><span style="color: #008080;"> 7</span> <span style="color: #008080;"> 8</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> __destruct() { </span><span style="color: #008080;"> 9</span> <span style="color: #0000ff;">print</span> "销毁 " . <span style="color: #800080;">$this</span>->name . "\n"<span style="color: #000000;">; </span><span style="color: #008080;">10</span> <span style="color: #000000;"> } </span><span style="color: #008080;">11</span> <span style="color: #000000;">} </span><span style="color: #008080;">12</span> <span style="color: #008080;">13</span> <span style="color: #800080;">$obj</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> MyDestructableClass(); </span><span style="color: #008080;">14</span> ?>
執行結果為:
<span style="color: #000000;">构造函数 销毁 MyDestructableClass</span>
單根繼承,繼承使用關鍵字extends,實作介面使用implements
ok,php函數和物件已經學習完畢。注意,本教程屬於快速學習教程,只專注於一些文法重點和特殊、不同點。