2015-03-13 120 views
0

我得到一個PHP錯誤PHP函數不能正常工作,未定義的變量

不確定的變量$ FNAME

$fname="John"; 
function getThis() 
{ 
    $complete_name= $fname."Kerry"; 
echo $complete_name;} 
    getThis(); 

在正確的方向任何幫助大大appriciated!由於

+1

對'$ fname'使用'global'關鍵字 – prava 2015-03-13 07:20:42

+1

最可能的變量範圍問題 – starkeen 2015-03-13 07:21:05

+0

是的,這關乎範圍,我承認它。否則,你有其他相關的代碼呢? – 2015-03-13 07:29:35

回答

2

你有一個變量範圍的問題outsid定義

變量e函數具有全局範圍並且它們不能在函數內部使用,如果要在函數內部使用它們必須在變量名稱前寫入全局關鍵字

global $fname; 

對你來說

我注意到,可變$ FNAME被定義在函數外,它有一個全球範圍內,如果你使用這個功能裏面,那麼它會拋出錯誤。

試試這個

$fname="John"; 
    function getThis() 
{ global $fname; 
    $complete_name= $fname."Kerry"; 
echo $complete_name;} 
    getThis(); 

來源

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

0

您不能訪問內部函數變量宣告了一邊,你必須使用使用global關鍵字....

$fname="John"; 
function getThis() 
{ 
global $fname; 
$complete_name= $fname."Kerry"; 
echo $complete_name;} 
    getThis(); 
+0

也許只是添加評論以瞭解更改內容和原因。 – 2015-03-13 07:21:05

1

嘗試把該$fnamegetThis()函數內部,如:

<?php 

function getThis() { 
$fname="John"; 
$complete_name= $fname."Kerry"; 
echo $complete_name; 
} 
getThis(); 

?> 
1

使用: -

$fname="John"; 

    function getThis() 
    { 
    global $fname; 
    $complete_name= $fname."Kerry"; 
    echo $complete_name; 
    } 
    getThis(); 

For more information click here

1

您可以將該變量傳遞給函數。

像這樣:

$fname="John"; 

function getThis($f_name) 
{ 
    $complete_name= $f_name."Kerry"; 

    echo $complete_name; 
} 

getThis($fname); 
-1

您必須聲明$ FNAME全球。就是這樣......