2009-06-26 30 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(); 
相关问题