KT客棧

Web程式交流 & 聊幹畫 / 心情手札

【PHP】6自訂函式-6.1 傳值呼叫及傳址呼叫

*PHP  6自訂函式-6.1 傳值呼叫及傳址呼叫

在我們寫程式時勢必會有許多相同的程式和動作會不斷的重複使用。因此我們可以把需要重複使用的程式寫入一個區域(function 函式),以便我們可以隨時呼叫使用。而此種將程式寫入固定區域也就稱為函式(方法)。

準此,在自訂函式中我們可以將許多個函式集中寫在一頁,接著再分別到各頁面中引入函式並進行呼叫,進而撈取我們的資料。

另外棧長解講PHP接近尾聲時,若有時間的話也會簡略帶到物件導向的部分,物件的寫法的靈活度則更廣些,在物件中我們會將物件的資料定義為類別的屬性功能定義為類別的方法,之後程式即可透過物件變數來操作類別中的自訂函式。PS.棧長當初理解物件的運用也花了不少時間,個人覺得這部分不算好學(光是什麼是類別、物件、建構子、封裝、繼承等等就讓我摸了一段時間),屆時我再用我的學習經驗和大家分享囉!


6.1  傳值呼叫及傳址呼叫
回歸正題,從上述可知函式(方法),可以讓我們將常態使用的程式寫入,並且在其他地方來呼叫使用。如有產生錯誤只需針對該方法進行修正即可。
自訂函式中,您也可以自帶參數或是不帶參數,若有放入參數請記得要用逗號隔開。
#自訂函式-不帶參數
<?php
  //自訂函式-不帶參數
  //函式內秀出文字,並呼叫
  function welcome() {
    echo "KT客棧歡迎各位棧友的到來! <br/>";
  }

  welcome();
?>
執行結果如下:
  • KT客棧歡迎各位棧友的到來!


#自訂函式-不帶參數(寫入陣列)
<?php
 //自訂函式-不帶參數
 //函式內寫入陣列,並呼叫
 function she() {
   $showlist = array('Selena' ,'Hebe' ,'Ella');
     foreach ($showlist as $key => $name) {
       echo $name."<br>";
     }
 }

 she();
?>
執行結果如下:
  • Selena
  • Hebe
  • Ella



#自訂函式-帶參數
<?php
  //自訂函式-帶參數
  /*
    函式帶參數"並非是必要的",但帶入參數可以增加函式的多變性
    若是函式沒帶參數,則僅會執行函式內的程式。
  */
  //自訂函式所帶的參數(下方的$car),正是我們自己帶入的自訂變數
  function  brand($car){
    echo  $car."<br/>";
  }

  brand("BENZ");
  brand("TOYOTA");
?>
執行結果如下:
  • BENZ
  • TOYOTA



#自訂函式-參數傳值呼叫(函式內外變數同名,互不影響)
<?php
  //自訂函式-參數傳值呼叫
  //程式中定義了一個變數而它與自訂函式中參數的變數同名,仍會視為不同的資料,互不干涉
  $kt = 5;
  function  house($kt){
   $kt = $kt+10;
   echo  "自訂函式的值 : ". $kt ."<br/>";
  }

  house($kt);
  //呼叫出來的最上方的變數,不受到自訂函式中參數的同名變數而受到影響
  echo "呼叫最上方的值 :". $kt ."<hr>"; 
?>
執行結果如下:
  • 自訂函式的值:15
  • 呼叫最上方的值:5


#自訂函式-參數傳址呼叫(函式內外變數同名,會影響)
<?php
  //自訂函式-參數傳址呼叫(函式內外變數同名,會影響)
  //參數前加入"&"符號,會將傳值呼叫變更為傳址呼叫
  //傳址呼叫會讓函式內外的變數,都因存入記憶體中的同一位址回傳給程式使用,而使資料(變數的值)同步
  $kt = 5;
  function  park(&$kt){
    $kt = $kt+10;
    echo  "自訂函式的值 : ". $kt ."<br/>";
  }

  park($kt);
  echo "第1次呼叫最上方的值 :". $kt ."<br/>";
  park($kt);
  echo "第2次呼叫最上方的值 :". $kt ."<br/>";
?>
執行結果如下:
  • 自訂函式的值:15
  • 第1次呼叫最上方的值 :15
  • 自訂函式的值:25
  • 第2次呼叫最上方的值 :25





沒有留言:

張貼留言

@templatesyard