为什么“”不是空的?

时间:2011-12-13 23:10:44

标签: php

我正在尝试这段代码:

<?php
$form = $_POST['myformdata'];

class validacoes {

    function validate_year($form) {
        $input_datas = $form['data'];
        foreach($input_datas as $val){
            if($val>1930 && $val<2012){
                echo "correct";
            }
            else
            echo "bad"; //show bad bad

        }
    }
}

$val = new validacoes();

$data = array();
var_dump($form['data']);


try {
    if (!empty($form['data'])){// why this is true ?
    $data['livre'] = $val->validate_year($form);
    }
    else
    echo "empty"; 
} catch (Exception $e) {
    $data['livre'] = $e->getMessage();
}

echo json_encode($data);

?>

//的var_dump

var_dump($form['data']);

    array
      0 => string '' (length=0)
      1 => string '' (length=0)

为什么函数validate_year($form)在没有任何输入的情况下运行?应该是空的,对吗?

2 个答案:

答案 0 :(得分:7)

它不是空的 - 它是一个包含2个空元素的数组。

答案 1 :(得分:2)

您自己发布了这些信息。 $form['data']包含两个对象的数组。因此它不是空的。

也许你想要

if (!empty($form['data'][0]) && !empty($form['data'][1]))