2015-09-11 40 views
-1

我會在不使用參數的情況下使不同函數可見的變量(例如,比如公開一個變量。這可能在PHP? 這是我想的簡單例子做:如何使函數之間的變量可見

<?php 
    calc(); 

    function a(){ 
     $var=1; // I would make $var visible to function calc() 
    } 

    function calc(){ 
     a(); 
     $var2=3/$var; 
     echo $var2; 
    } 
?> 
+1

給它幾分鐘:http://php.net/manual/en /functions.returning-values.php – Rizier123

+1

返回值。 – aldrin27

+0

但萬一函數a()必須返回很多變量,我不會使用數組.. – Denis

回答

1

爲在Rizier123和aldrin27的評論中提到,你只需要在a()返回值:

calc(); 

function a(){ 
    $var = 1; 
    return $var; 
} 

function calc(){ 
    $var = a(); 
    $var2 = 3/$var; 
    echo $var2; 
} 
1

如果可以的話不返回值,您可以使用global

function a() { 
    global $var; 
    $var = 1; 
} 

function calc() { 
    global $var; 
    $var2 = 3/$var; 
    echo $var2; 
} 
2

它可以使用全局變量,但它在大多數情況下是錯誤的!

function a(){ 
    global $var=1; // as well as in the second function 
} 
更好

通過可變回報

function a(){ 
    return 1; 
} 

function calc(){ 
    $var = a(); 
    $var2=3/$var; 
    echo $var2; 
} 

或者使用OOP /班回去

class Calculator { 
    var $var; 
    function a(){ 
    $this->var=1; // I would make $var visible to function calc() 
    } 

    function calc(){ 
    $this->a(); 
    $var2=3/$this->var; 
    echo $var2; 
    } 
} 

$calculator = new Calculator(); 
$calculator->calc();