首頁 > 後端開發 > php教程 > php學習正式啟航(4)

php學習正式啟航(4)

黄舟
發布: 2023-03-04 11:34:01
原創
1146 人瀏覽過

現在說函數,php裡的函數也好簡單

<?php
function 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

當然函數可以有回傳值的

<?php
function a(){
return 1;
} 
echo a(); 
?>
登入後複製

打印1
當然函數可以有回傳值的

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

印1
,就是可以直接給形參賦預設值

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

打印5 

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

<?php
echo "hello";
?>
登入後複製
登入後複製

打印7

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

下面看
新建一個php檔案a.php在根目錄
程式碼如下

<?php
include &#39;a.php&#39;;
echo "hello";
?>
登入後複製

很簡單

然後另一個php檔案引入

<?php
include &#39;a1.php&#39;;
echo "hello";
?>
登入後複製

會列印兩個h然後另一個php檔案引入

<?php
require &#39;a1.php&#39;;
echo "hello";
?>
登入後複製

會列印兩個hcomo然後另一個php檔案引入


<?php
require (&#39;a.php&#39;);
require (&#39;a.php&#39;);
?>
登入後複製

會列印兩個ho然後另一個php檔案引入

<?php
require (&#39;a.php&#39;);
require_once (&#39;a.php&#39;);
?>
登入後複製

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

<?php
include (&#39;a.php&#39;);
require_once (&#39;a.php&#39;);
?>
登入後複製

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

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

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

<?php
echo "hello";
登入後複製

打印兩個hello


<?php
echo "hello";
?>
登入後複製
登入後複製

打印一個hello

就算前面是include也一樣

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

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

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


其實php程式碼(沒有html)

<?php
require (&#39;a.php&#39;);
echo "hello";
?>
登入後複製
登入後複製

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

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

<?php
echo "hello";
?> ------------光标在>后面时候你打个几个回车
---------这里有回车符号了,不过你看不到
------------回车符号
-------------
登入後複製

然後另一個php引入

<?php
require (&#39;a.php&#39;);
echo "hello";
?>
登入後複製
登入後複製
會打印hellohello


但是如果你一不小心

rrreee

rrreee

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

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

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

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

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板