2012-10-17 134 views
0

我有麻煩的變量這是在功能之外的功能的值以外...變量不顯示所述功能

實施例:

function myfunction() { 
    $name = 'myname'; 
    echo $name; 
} 

然後我調用它。 ..

if (something) { 
    myfunction(); 
} 

這是呼應$name,但如果我嘗試回聲$name輸入值中也不會顯示:

<input type="text" name="name" value="<?php echo $name ?>" 

我如何才能訪問到這個變量的值?

+0

你嘗試全球化的變量。即將其定義爲全局:全局$名稱; $ name ='myname';? – bodi0

回答

2

$name變量是本地的,直到你明確地定義它爲全球:

function myfunction() { 
    global $name; 
    $name = 'myname'; 
    echo $name; 
} 

但是這似乎並不像一個良好的使用全局變量在這裏。你是否想要返回值並賦值? (或者只是使用一次?)

function myfunction() { 
    $name = 'myname'; 
    return $name; 
} 

... 
$name = myfunction(); 
+0

正是我正要寫的:-)人們忘記全球是雙向的 – davidkonrad

0

閱讀華南簡介variable scope 變量具有局部範圍。你必須讓它成爲全球。不過還好,使用一些模板引擎或實施註冊

0

它的範圍的問題..

http://php.net/manual/en/language.variables.scope.php

就像當你在一個封閉的房間裏,我們看不到你做什麼,但如果你打開一扇門,或者把攝像機放在人們的視線裏,或者可以看到有限的東西,或者聽到有限的東西。這就是電腦裏的東西。

0

你應該閱讀關於scope的php頁面。

做你想要什麼有兩種解決方法:

  1. $name全局或
  2. return變量從功能
0

$name變量是函數的局部。所以它只能在該函數內部訪問。如果你希望它是入店到處都可以做到以下幾點:

  • 聲明它的功能之外,功能類型中:global $name;
  • 仍然宣稱它之外,但通過她作爲參考函數參數:

    function myFunc(&$name) { $name = "text"; }