PHP通常不会调用此方法,但会调用xdebug
我在Ubuntu上使用XAMPP7.0.13-1(PHP7.0.9)。我已经安装了Xdebug 2.5.0,目前与NetBeans 8.5一起使用 我遇到了这种情况:当我运行以下代码调试时,PHP通常不会调用此方法,但会调用xdebug,php,netbeans,xampp,xdebug,ubuntu-16.04,Php,Netbeans,Xampp,Xdebug,Ubuntu 16.04,我在Ubuntu上使用XAMPP7.0.13-1(PHP7.0.9)。我已经安装了Xdebug 2.5.0,目前与NetBeans 8.5一起使用 我遇到了这种情况:当我运行以下代码调试时,dump的最终值是nombreapellidovalidonombreapellidovalidocontraseñaValidaEmailValido(预期值)。但是,当我在相同的输入数据下运行它而不调试它时,我会得到nombreapellidovalidonombreoapellidovalidocont
dump
的最终值是nombreapellidovalidonombreapellidovalidocontraseñaValidaEmailValido
(预期值)。但是,当我在相同的输入数据下运行它而不调试它时,我会得到nombreapellidovalidonombreoapellidovalidocontraseñaValida
(意外):
}
我不明白为什么会这样。输入在两种场景中都是相同的,唯一的区别是在一种情况下我调试,而在另一种情况下我不调试。从输出判断,PHP在正常运行时没有执行EmailValido($email)
nombreapellidovalido
这样的方法必须返回true
或false
,现在它们什么也不返回,意味着NULL
$this->valido=($this->nombreapellidovalido($nombres,'nombresValido'));
$this->valido=($this->valido&&$this->nombreapellidovalido($apellidos,'apellidosValido'))代码>
确保第一个代码块
public function\uu构造中的代码($nombres,$apellidos…
是正确的。粘贴的代码有一个输入错误,请注意额外的“红色”使一半代码变红,因为它认为这是一个字符串。我似乎在编写问题时错误地键入了它。我更正了它。源代码是正确的。然后使用Xdebug逐步检查代码并查看两个执行的分歧(变量值、方法调用等)当我这样做时,程序的工作与我预期的完全一致。但当我不这样做时,它不会。有趣的是,这些方法确实会在实际代码中返回这些值。此外,我只是尝试了你所说的关于括号的内容,但它并没有解决问题,但谢谢你。
public function __construct($nombres, $apellidos, $contraseña, $repContraseña, $email, IUsuarioDB $capaDatos){
$this->dump = "";
$this->capaDatos = $capaDatos;
$this->valido = $this->NombreOApellidoValido($nombres, 'nombresValido');
$this->valido = $this->valido && $this->NombreOApellidoValido($apellidos, 'apellidosValido');
$this->valido = $this->valido && $this->ContraseñaValida($contraseña, $repContraseña);
$this->valido = $this->valido && $this->EmailValido($email);
$this->nombres = $nombres;
$this->apellidos = $apellidos;
$this->contraseña = $contraseña;
$this->email = $email;
echo $this->dump;
if($this->valido){
$this->codigoActivacion = md5(time());
$this->capaDatos->GuardarUsuario($this);
}
public function NombreOApellidoValido($nombres, $aValidar){
$this->dump .= "NombreOApellidoValido";
//Do stuff
}
public function ContraseñaValida($contraseña, $repContraseña){
$this->dump .= "ContraseñaValida";
//Do stuff
}
public function EmailValido($email){
$this->dump .= "EmailValido";
if(filter_var($email, FILTER_VALIDATE_EMAIL)){
$this->emailValido = true;
if($this->capaDatos->EmailUnico($email)){
$this->emailUnico = true;
return true;
}else{
$this->emailUnico = false;
return false;
}
}else{
$this->emailValido = false;
return false;
}
}