2009-06-26 28 views
2

所以,我有以下幾點:爲什麼我在PHP中收到「Undefined variable」通知?

<?php 
    show_form(); 
?> 


<form id="add" method="post" action="addIssue.php"> 
    Name: 
    <?php input_text('name','str_name', $defaults , '1'); ?> 
    <input class="submit" type="submit" value="Begin download" /> 
    <input type="hidden" name="_submitCheck" value="1"/> 
</form> 


<?php 
function show_form($errors = '') 
{ 
    // If form is submitted, get the defaults from submitted parameters 
    if(empty($_POST['_submitCheck']) OR !$_POST['_submitCheck']){ 
     // set our own defaults 
     $defaults = array('str_name' => ''); 

    } else { 
     $defaults = $_POST; 
    } 
} 

// Echo text box 
function input_text($elem_id, $element_name, $values, $tab='') { 
    echo '<input id="'.$elem_id.'" name="'.$element_name.'"'; 
    echo ' tabindex="'.$tab.'" class="text" value="'; 
    echo htmlentities($values[$element_name]) . '" />'; 
} 
?> 

爲什麼會收到通知如下:?

Notice: Undefined variable: defaults

回答

3

你需要設置變量爲全局工作。

在show_form方法的開始,添加以下代碼:

global $defaults; 

或者,正如已指出一個更好的解決方案,以返回變量和使用$默認= show_form()。

+0

Arrrrrg ...你是對的。變量範圍。 我怎麼沒看到它。 – 2009-06-26 17:58:02

6
$defaults

show_form功能的範圍內的局部變量。你需要從函數返回它,並將你的第一行代碼改爲:

$defaults = show_form(); 
相關問題