2014-03-24 122 views
1

我剛開始學習PHP,我想知道有人可以幫助我與定義函數的邏輯。我似乎無法把頭圍住它。PHP定義函數邏輯

簡單的例子:

<?php 

function hello($word) { 
    echo "Hello $word"; 
} 

    $name = "John"; 
    strtolower(hello($name)) 

?> 

,我知道,如果我使用的回報,而不是回聲的函數,那麼它呼應外面定義的功能,「用strtolower」適用,但在這個例子中它沒有。我不明白php是如何解釋它的。提前致謝。

回答

6

想象一下,功能是一盒未知內容。你把東西放進去,出來的東西 - 意思是你有參數和東西是返回

在你的代碼示例中,你不返回任何東西,而是echo一些字符串。

function hello($word) { 
//   ^parameter 
    return "Hello $word"; 
} 

$name = "John"; 
strtolower(hello($name)); 

爲了進一步說明一點,你可以看看你的原代碼是這樣的:

echo strtolower(hello("John")); 
    ^  ^--- call hello("John") 
    |    something happens (your echo) 
    |    hello() ended without return, return NULL by default 
    |--- call strtolower(NULL) 
      something happens 
      strtolower() returned "" 

但你希望它是這樣的:

echo strtolower(hello("John")); 
    ^  ^--- call hello("John") 
    |    something happens 
    |    hello() return "Hello John" 
    |--- call strtolower("Hello John") 
      something happens 
      strtolower() returned "hello john" 
+1

+1你輸入的速度比我快 –

+0

@JohnConde最後 - 哈,今晚我將享用! – kero

+0

大聲笑當之無愧! –