php – 避免在表单上使用isset()?
发布时间:2020-12-13 17:10:54 所属栏目:PHP教程 来源:网络整理
导读:当你有很多输入(选择/ textarea /输入)时,当你包含isset()时它会显得很乱 例如: input id="firstname" type="text" name="firstname" value="?php echo (isset($_POST['firstname']) ? $_POST['firstname'] : "";?" 在另一种方式,它看起来整洁和可维护? 如
当你有很多输入(选择/ textarea /输入)时,当你包含isset()时它会显得很乱
例如: <input id="firstname" type="text" name="firstname" value="<?php echo (isset($_POST['firstname']) ? $_POST['firstname'] : "";?>"> 在另一种方式,它看起来整洁和可维护? 如果有帮助,我正在使用MVC Framework. 解决方法
您可以构建自己的函数来填充值:
function get_post( $key,$default = ''){ if( isset( $_POST[$key])){ return htmlspecialchars( $_POST[$key]); } return htmlspecialchars( $default); } 并将其用作: <input ... value="<?php echo get_post( 'firstname','Your name'); ?>" /> 或者无论如何它会被整合到你的框架中. 如果你需要更完整的密钥,你可以这样做: function get_post( ){ $args = func_get_args(); if( count( $args) < 2){ // Wrong usage,throw an exception } $default = array_pop( $args); $progress = $_POST; while( $key = array_shift( $args)){ if( !is_array( $progress) || !isset( $progress[$key])){ $progress = $default; break; } $progress = $progress[$key]; } return htmlspecialchars( $progress); } echo get_post( 'my','multiple','keys','default'); 准备变量 你也可以利用php <?php $myList = array( 'name' => 'Your name','another' => 'Another'); $values = $_POST + $myList; 而不只是: <?php echo htmlspecialchars( $values['name']); ?> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |