php學習正式起航(4)

來源:互聯網
上載者:User
現在說函數,php裡的函數也好簡單

<?phpfunction a(){echo "hello";} a(); ?>

function就是定義了一個函數,跟javascript一樣 而且還不需要函數類型,就連形參也不需要

<?php$a=1; function a($a){echo $a;} a($a); ?>

輸出1

<?php$a=1; function a($a){$a=$a+1;echo $a;} a($a); ?>

輸出2

<?php$a=1; function a($a){$a=$a+1;echo $a;} a($a);echo $a; ?>

最後的a其實就是開始的a 會列印1

當然函數可以有傳回值的

<?phpfunction a(){return 1;} echo a(); ?>

列印1

另外php函數還有一點與其他程式設計語言不同的地方,就是可以直接給形參賦預設值

<?php$a=2; function add($a,$b=3){return $a+$b;} echo add($a); ?>

列印5

這點是不是很優越
當然,你也可以給b傳個其他值

<?php$a=2; function add($a,$b=3){return $a+$b;} echo add($a,$b=5); ?>

列印7

下面簡單的說下php的引入
早在C語言就有這個概念,引入標頭檔
php有兩個函數可以引入檔案
include() 函數和 require() 函數 英語意思分別是包含和引入,意思差不多哈
兩個函數功能其實是一樣的,但有一點區別
include() 函數如果發生錯誤(比如引入檔案不存在),後面在代碼還會照樣執行
require() 函數一旦發生錯誤,後面代碼不再執行,也就是中斷程式

下面看
建立一個php檔案a.php在 根目錄
代碼如下

<?phpecho "hello";?>

很簡單

然後另一個php檔案引入

<?phpinclude 'a.php';echo "hello";?>

會列印兩個hello

如果檔案不存在

<?phpinclude 'a1.php';echo "hello";?>

會有警告,但第2個hello會照樣列印

而

<?phprequire 'a1.php';echo "hello";?>

會報致命錯誤,第2個hello不會列印

另外引入require ('a.php'); 也可以加括弧,也可以不加,引號也可以雙引號或單引號

另外還有 include_once()和 require_once()
功能和include,require一樣,但它會在引入檔案前判斷一下前面是否已經引入了,如果前面已經引入,就不再引入

<?phprequire ('a.php');require ('a.php');?>

列印兩個hello

<?phprequire ('a.php');require_once ('a.php');?>

列印一個hello

就算前面是include也一樣

<?phpinclude ('a.php');require_once ('a.php');?>

列印一個hello

include_once()作用與上面一樣

一般都用的require_once 居多,特別在大型項目中
include一般是引入html的頭部和尾部的html代碼,很少去引入php的代碼
require就是引入類或函數了

其實如果足夠自信確認不會有多引入相同檔案,用require是完全沒問題的,且效率還要高點,至少不需要判斷,但大型項目就慎用了,因為是團隊合作,別人寫的代碼可能引入了你要引入的檔案,自己又不可能去一一檢查,所以用require_once是合適的

另外在說一個小問題,引入純php檔案(沒有html代碼) 最好那個被引入檔案不要有回閉標籤 ?>

其實php代碼(沒有html)

<?phpecho "hello";

是能夠執行的,你不寫系統讀到文檔最後發現沒有會預設補一個

為什麼要這樣呢?
因為按普遍來說

<?phpecho "hello";?>

然後另一個php引入

<?phprequire ('a.php');echo "hello";?>

會列印hellohello

但是如果你一不小心

<?phpecho "hello";?> ------------游標在>後面時候你打個幾個斷行符號---------這裡有斷行符號符號了,不過你看不到------------斷行符號符號-------------


大多數人有這樣的習慣吧

然後再引入列印

<?phprequire ('a.php');echo "hello";?>

會列印
hello hello 中間會隔著一個空格

而不加?> 就不會有這種情況

所以說。。除非你確保回閉標籤?>後面不有任何符號(斷行符號,空格等)
你就可以用回閉標籤
其實,現在很多項目都意識到這點。寫類基本很少用回閉標籤

以上就是php學習正式起航(4)的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.