通过同一个函数运行多个变量


Run multiple variables through the same function

这是我第一次为搜索什么来找到我的答案而目瞪口呆。我通常不会发帖子,因为互联网上有成千上万的帖子都是我的答案;当然,这也不例外。我寻找答案的问题是,我甚至不太确定要搜索什么。

下面的代码可以工作。这不是问题所在。我的问题是,如果我想运行1000次呢。当然,我不需要写这么多遍整个表达式来获得想要的效果,不是吗?

我有一种感觉,它与数组有关,但我仍然处于这样一种状态:我今天理解数组,第二天它们是希腊语。

但无论如何,为一个简单的问题写了很长的帖子。希望有人能帮我解决这个问题。

这是PHP。

$firstname = $validate->stripExcess($firstname);
$lastname = $validate->stripExcess($lastname);
$email = $validate->stripExcess($email);
$password1 = $validate->stripExcess($password1);
$password2 = $validate->stripExcess($password2);

这是整个页面:

<?php
session_start();
require("../classes/uservalidation.php");
$firstname = $lastname = $email = $password1 = $password2 = "";
if($_SERVER['REQUEST_METHOD'] == "POST") {
    $firstname = $_POST['fname'];
    $lastname = $_POST['lname'];
    $email = $_POST['email'];
    $password1 = $_POST['password'];
    $password2 = $_POST['verify'];
}
//create validation object
$validate = new userValidation;
//execite stripExcess method $vaidate
$firstname = $validate->stripExcess($firstname);
$lastname = $validate->stripExcess($lastname);
$email = $validate->stripExcess($email);
$password1 = $validate->stripExcess($password1);
$password2 = $validate->stripExcess($password2);
//
$returnValidate = $validate->register($firstname, $lastname, $email, $password1, $password2);
//check if the variable is an array -- (case when returnValidate has an error)
if (is_array($returnValidate)) {
    $url = $returnValidate[0];
    $errorMessage = $returnValidate[1];
    //echo $url;
    //exit();
}else{
    $url = $returnValidate;
    //echo $url;
    //exit();
}
//Set the form values to SESSION vairbale to pass around
$_SESSION['fname'] = $firstname;
$_SESSION['lname'] = $lastname;
$_SESSION['email'] = $email;
$_SESSION['password1'] = $password1;
$_SESSION['password2'] = $password2;
//redirect to the correct page based on validate results
header("Location: " . $url, true, 303);
?>

和class:

<?php
session_start();
require("../classes/uservalidation.php");
$firstname = $lastname = $email = $password1 = $password2 = "";
if($_SERVER['REQUEST_METHOD'] == "POST") {
    $firstname = $_POST['fname'];
    $lastname = $_POST['lname'];
    $email = $_POST['email'];
    $password1 = $_POST['password'];
    $password2 = $_POST['verify'];
}
//create validation object
$validate = new userValidation;
//execite stripExcess method $vaidate
$firstname = $validate->stripExcess($firstname);
$lastname = $validate->stripExcess($lastname);
$email = $validate->stripExcess($email);
$password1 = $validate->stripExcess($password1);
$password2 = $validate->stripExcess($password2);
//
$returnValidate = $validate->register($firstname, $lastname, $email, $password1, $password2);
//check if the variable is an array -- (case when returnValidate has an error)
if (is_array($returnValidate)) {
    $url = $returnValidate[0];
    $errorMessage = $returnValidate[1];
    //echo $url;
    //exit();
}else{
    $url = $returnValidate;
    //echo $url;
    //exit();
}
//Set the form values to SESSION vairbale to pass around
$_SESSION['fname'] = $firstname;
$_SESSION['lname'] = $lastname;
$_SESSION['email'] = $email;
$_SESSION['password1'] = $password1;
$_SESSION['password2'] = $password2;
//redirect to the correct page based on validate results
header("Location: " . $url, true, 303);
?>

我不知道你想要什么,但也许:

$values = array("firstname", "lastname", "email", "password1", "password2");
foreach($values AS $value) {
    $$value = $validate->stripExcess($$value);
}

是。如果你有很多变量,你可以使用一个变量数组。基本上,数组是PHP中非常常见的结构。当您从$_GET和$_POST获取值时,您还需要处理数组。嵌套数组和对象数组,对象的嵌套数组这些都在php中被广泛使用。

尝试var_dump $_GET和$_POST(当您向服务器发送一些值时),并分析它们在有值时是如何形成的