PHP变量及其显示方式
这是我的变量PHP变量及其显示方式,php,database,variables,shortcut,Php,Database,Variables,Shortcut,这是我的变量 $error=[]; $dbname=htmlspecialchars(trim($_POST["dbname"])); $dbusername=htmlspecialchars(trim($_POST["dbusername"])); $dbpassword=htmlspecialchars(trim($_POST["dbpassword"])); $dbhost=htmlspecialchars(trim($_POST["dbhost"]));; $debugging=$_P
$error=[];
$dbname=htmlspecialchars(trim($_POST["dbname"]));
$dbusername=htmlspecialchars(trim($_POST["dbusername"]));
$dbpassword=htmlspecialchars(trim($_POST["dbpassword"]));
$dbhost=htmlspecialchars(trim($_POST["dbhost"]));;
$debugging=$_POST["debugging"];
... // i got such variables many some are not belong to post as well
我想这样显示错误
if(empty($dbname){
echo $error['$dberro']="Hey you have missed the database name";
}
if(empty($dbusername){
echo $error['$dbusernameerror']="Hey you have missed the database user name";
}
.... // i have such code many
if (isset($error[$dberror])){
echo "$error[$dberror]";
}
... //i have such many
我有这样的40个变量,我如何很容易地做到这一点……我在静态页面或其他类似的php页面上显示
if(empty($dbname){
echo $error['$dberro']="Hey you have missed the database name";
}
if(empty($dbusername){
echo $error['$dbusernameerror']="Hey you have missed the database user name";
}
.... // i have such code many
if (isset($error[$dberror])){
echo "$error[$dberror]";
}
... //i have such many
代码不是太庞大了吗?也许还有比这更好的主意
我能得到这些想法吗?你可以使用一个数组并循环通过它来检查。。大概是这样的:
$db_array = array(
'dbname' => htmlspecialchars(trim($_POST["dbname"])),
'dbusername' => htmlspecialchars(trim($_POST["dbusername"])),
etc..
etc..
);
foreach($db_array as $key => $value) {
if(empty($value)) {
echo "Hey you have missed: $key";
}
}
编辑:根据jtmanteos注释更正您可以创建第一个数组来存储变量及其说明 另一个用于存储数据:
<?php
$error=[];
//data associate var and its description
$data[
'dbname'=>'database name',
'dbusername'=>'database user name',
'dbpassword'=>'database password',
'dbhost'=>'database host',
'debugging'=>'debugging'
];
//values store the values in an array
$values['dbname']=htmlspecialchars(trim($_POST["dbname"]));
$values['dbusername']=htmlspecialchars(trim($_POST["dbusername"]));
$values['dbpassword']=htmlspecialchars(trim($_POST["dbpassword"]));
$values['dbhost']=htmlspecialchars(trim($_POST["dbhost"]));;
$values['debugging']=$_POST["debugging"];
//test values
foreach($data as $var=>$description){
if(empty($values[$var]){
echo $error[$var]="Hey you have missed the ".$description;
}
}
这个怎么样:
<?php
foreach($_POST as $key => $value) {
$$key = htmlspecialchars(trim($_POST["dbname"]));
if(empty($$key)) {
echo "Hey you have missed: $key";
}
}
?>
foreach循环应该是一种更容易/更紧凑的方式来显示错误。我希望现在您明白为什么要使用PHP框架了?@VincentDecaux PHP框架来显示一段脚本?这就像建造摩天大楼开咖啡馆一样。当然,ChrisWillard提到的基本foreach循环是进入框架工作的方式。。。??为什么要使用??框架为什么要使用。。。难读!为什么只有一个剧本?他定义了db连接,所以肯定没有一个PHP文件。我认为您不想检查empty($key)
,因为它永远不会为空。我想你想要空($value)
。是的,你说得对@jtmanteo,那一个从我身边溜走了/但它说的是“嘿,你错过了数据库名”而不是数据库名,不是吗???@user3689984;这只是一个你如何做到这一点的例子。你需要把它写进剧本里,它不会像复制/粘贴那样简单,但应该会让您知道如何处理它。啊,是的,但我说过我想显示这样的消息*您错过了数据库名称*问题是否不清楚?此解决方案假设您的提交表单html有以您要查找的所有键命名的输入,并且所有输入都具有相同的名称“值”属性。如果没有,那么这些键甚至不会出现在您的post数组中