PHP - 获取变量名称?不是它的内容......它的名字?

时间:2012-06-17 21:09:18

标签: php variables

请看这个例子:

if (strlen($_SESSION['userDetails']['THISNAME']) == 0)
{
    $_SESSION['userDetails'][''.$THISNAME.'Error'] = "autofocus";
    include "$docRoot/html/forms/reg/user_info.html.php";
    exit();
}

我如何使用THISNAME的名称来创建一个在名称上附加Error的新变量,所以在这个示例中输出将是THISNAMEError

谢谢!

3 个答案:

答案 0 :(得分:2)

你已经知道“THISNAME”以测试它的长度。为什么你不能再把它放在你想要的地方?

但更常见的是,您可以使用array_keys()获取数组的键列表,或使用foreach($input as $key=>$value)循环显示它们。

答案 1 :(得分:1)

//if(strlen($_SESSION['userDetails'][$THISNAME]) == 0)
//|
//|->if you are checking for $THISNAME,
//   why you then create a new varialbe $THISNAME.'Error' ?

//if(strlen($_SESSION['userDetails']["$THISNAME_Error"]) == 0) {
if( ! isset($_SESSION['userDetails']["$THISNAME_Error"])) {

   $_SESSION['userDetails'][$THISNAME.'_Error'] = "autofocus";
   //or
   $_SESSION['userDetails']["$THISNAME_Error"] = "autofocus";

}

应该工作

答案 2 :(得分:0)

$required_fields = array( 'name', 'email', 'password', 'password_verification' );
$errors = array();

foreach ( $required_fields as $field )
{
   if ( !isset($_POST[$field]) )
   {
      $errors[$field] = 'not set';
   }
}

if ( count($errors) > 0 )
{
    // there will be errors in thy forms
}

这是你在找什么?