【发布时间】:2021-04-07 21:42:13
【问题描述】:
大家好,目前我正在自学 PHP,但遇到了一个非常令人困惑的问题。运行在单独文件中包含此代码的另一个文件时出现以下错误。
警告:第 26 行 C:\xampp\htdocs\MirrorTrade\classes\signup.php 中未定义的数组键“first_name” 警告:第 27 行 C:\xampp\htdocs\MirrorTrade\classes\signup.php 中未定义的数组键“last_name” 警告:第 28 行 C:\xampp\htdocs\MirrorTrade\classes\signup.php 中未定义的数组键“email” 警告:第 29 行 C:\xampp\htdocs\MirrorTrade\classes\signup.php 中未定义的数组键“密码” 致命错误:未捕获的错误:调用 C:\xampp\htdocs\MirrorTrade\classes\signup.php:32 中未定义的函数 create_userid() 堆栈跟踪:#0 C:\xampp\htdocs\MirrorTrade\classes\signup.php( 17): Signup->create_user(Array) #1 C:\xampp\htdocs\MirrorTrade\signup.php(7): Signup->evaluate(Array) #2 {main} 在 C:\xampp\htdocs\MirrorTrade 中抛出\classes\signup.php 在第 32 行
这是我的代码有问题
<?php
class Signup
{
private $error = "";
public function evaluate($data)
{
foreach ($data as $key => $value)
{
if(empty($value))
{
$this->error = $this->error . $key . " is empty!<br>";
}
}
if($this->error == "")
{
$this->create_user($data);
}
else
{
return $this->error;
}
}
public function create_user($data)
{
$firstname = $data['first_name'];
$lastname = $data['last_name'];
$email = $data['email'];
$password = $data['password'];
$url_address = strtolower($firstname) . "." . strtolower($lastname);
$userid = create_userid();
$query = "insert into
users
(userid,first_name,last_name,email,password,url_address)
values
('$userid','$first_name','$last_name','$email','$password','$url_address')";
return $query;
}
private function create_userid()
{
$length = rand(4,19);
$number = "";
for ($i=0; $i < $length; $i++)
{
$new_rand = rand(0,9);
$number = $number . $new_rand;
}
return $number;
}
}
【问题讨论】: