2011-01-29 30 views
-1

功能很簡單的問題要能夠以前我們做這個函數外定義一個函數中使用變量:關於PHP

function animal() {  
    global $favAnimal, $personName;  
    //more code here  
} 

但我們如何使用所內定義的變量該函數之外的函數?例如以下不起作用:

function animal() {  
    $animalName = 'tiger';  
} 

animal(); 

echo $animalName; //prints nothing 
+1

將返回從函數的對象或以相同的聲明空變量全球名稱是一個選項? – slhck 2011-01-29 07:57:08

+0

不好意思,你爲什麼要那樣做?這是不合理的。那麼有兩個具有相同名稱($ animalName)的變量,在兩個不同的函數中呢?你會打印哪一個? – 2011-01-29 07:58:41

回答

0

您不能訪問其他功能的當地變量,除非該函數調用堆棧較高,並已通過可變進調用的函數。但是,任何函數都可以將其他變量添加到全局範圍。

好像你可能會尋找return聲明:

function animal() {  
    $animalName = 'tiger';  

    return $animalName; 
} 

$name = animal(); 

echo $name; // prints 'tiger' 
2

相同的方式。但不要這樣做。

function animal() {  
    global $animalName; 
    $animalName = 'tiger';  
} 
+1

伊格納西奧說的是,範圍是有原因的,如果你開始在全球範圍內包含太多的變量,你最終會得到意大利麪條代碼 – Luis 2011-01-29 08:01:22

0
function animal() { 
    return 'ounce'; 
} 

echo animal(); 

你應該return動物名稱。

如果你想要的東西傳遞到功能,使用的參數,而不是一個global

function animal($type) { 
    if ($type == 'cat') { 
     return 'tiger'; 
    } else { 
     return 'something else'; 
    } 
} 

echo animal('cat'); 
0
function animal() {  
    $animalName = 'tiger';  
return $animalName; 
} 

$animalName=animal(); 

echo $animalName; //prints tiger 
0
function animal() {  
    animalName = 'tiger'; 
    return $animalName; 
    } 

    echo animal();