我看了一下看起来像我的其他问题,但找不到一个好的答案。所以
$machines = get_machine($platform);
$options = array() ;
$options[0] = "please select";
foreach( (array)$machines as $machine_){
$options[$machine_[0]] = $machine_[1] ;
array_push($temp,$machine_[0]);
}
//print_r($options);
$form->addElement(new Element\Select("Existing machines :", "machine", array("onchange" => "this.form.submit()", "value" => $machine)));
if ( !in_array( $machine, $temp ) )
$machine = 0;
$form->addElement(new Element\Textbox("Add new/Edit machine:", "new_machine", array("placeholder" => "new machine", "shortDesc" => "Add new machine or edit the existing one", "value" => get_machine( $machine ))));
它表示“机器”没有定义和偏移的偏移。 这里定义了:
if ( isset($_POST['machine']) ) $mask = $_POST['machine']; else $machine = 0;
我和其他变量有完全相同的代码,并没有给我这样的错误。我确信,没有错别字。
答案 0 :(得分:0)
我相信这会让我得到另一连串的downvotes,但是有一种方法可以帮助我保持我的陈述简短易读(没有始终在isset($_POST['...'])
处进行),而是将预期值初始化为我的页面顶部和直接位于其下方 extract($_POST)
命令,如:
$amount=$mask=$machine=0; $flag1=$flag2=$flag2=false;
extract($_POST);
是的,这个将转换已发布到我页面上的php变量中的所有,但是......
posted
(因此缩小了范围)好处是,在初始化之后,我不再需要为任何isset()
打扰。我只是直接使用预期的变量。它将以其初始化形式(值为0或false
)或extract()
语句的结果存在。