PHP,var未定义

时间:2014-01-19 04:21:19

标签: php

我真的不明白为什么没有定义这个var。

if(isset($_POST['test']))
{
    $directory = 'C:/Users/Oscar/Documents/test/';
    $files = array_diff(scandir($directory), array('..', '.'));


    foreach($files as $file):?>

    <table border="2px">
        <tr>
            <td>
                <form method="post">
                    <input type="submit" value="<?php echo $file; ?>" name="file" />    
                </form>
            </td>
        </tr>
    </table>

    <?php endforeach;


}
if(isset($_POST['file']))
{   
    //print_r($_POST['file']);
    echo file_get_contents($directory.$_POST['file']);
}

目录var未定义,我在最后一个“if”上调用它。不知道为什么

3 个答案:

答案 0 :(得分:3)

将您的代码更改为

$directory = 'C:/Users/Oscar/Documents/test/';
if(isset($_POST['test']))
{
    $files = array_diff(scandir($directory), array('..', '.'));
   .....

我希望你能理解这里发生的事情。你的条件基本上是(根据实际逻辑而不是代码)if {} else {}

移动第一个条件块共享的var可确保它在两个块中都可用。

答案 1 :(得分:0)

因为if语句是假的。

把$ directory ='C:/ Users / Oscar / Documents / test /';在这一行之上:if(isset($ _ POST ['test']))

答案 2 :(得分:0)

所以$ post ['test']返回false,然后$ directory未定义。