【发布时间】:2020-03-07 14:34:19
【问题描述】:
我希望构造函数验证 $contraseña 和 $rcontraseña 以查看它们是否匹配。 如果他们这样做:散列密码。 如果他们不这样做:创建一个错误数组,其中 $errors[password] 包含一个显示“密码不匹配”的字符串。
我对以下代码的问题是:
var_dump($errores);没有显示字符串,可能是因为我尝试填充它的方式是错误的。该数组在类之外,我也尝试将其设为公共、私有和受保护的属性,但这些都不起作用。
<?php
// Array de errores. Si todo está null es porque no hubo errores.
$errores = [
"nombre" => "",
"apellido" => "",
"usuario" => "",
"contraseña" => "",
];
class Usuario {
/* atributos */
protected $nombre;
protected $apellido;
protected $usuario;
protected $contraseña;
/* Métodos. */
/* Constructor que setea datos, los verifica y hashea contraseña. */
public function __construct($nombre, $apellido, $usuario, $contraseña, $rcontraseña){
$this->nombre = $nombre;
$this->apellido = $apellido;
$this->usuario = $usuario;
if ($rcontraseña == $contraseña) {
$this->contraseña = password_hash($contraseña, PASSWORD_DEFAULT);
}
else {
$errores['contraseña'] = "Las contraseñas no coinciden.";
}
// Verificamos que nombre no esté vacío.
}
}
$emiliano = new Usuario("Emiliano", "Vargas", "emicapo", "emi123", "eemi123");
var_dump($errores);
【问题讨论】:
标签: php arrays class constructor