Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP通常不会调用此方法,但会调用xdebug_Php_Netbeans_Xampp_Xdebug_Ubuntu 16.04 - Fatal编程技术网

PHP通常不会调用此方法,但会调用xdebug

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

我在Ubuntu上使用XAMPP7.0.13-1(PHP7.0.9)。我已经安装了Xdebug 2.5.0,目前与NetBeans 8.5一起使用

我遇到了这种情况:当我运行以下代码调试时,
dump
的最终值是
nombreapellidovalidonombreapellidovalidocontraseñaValidaEmailValido
(预期值)。但是,当我在相同的输入数据下运行它而不调试它时,我会得到
nombreapellidovalidonombreoapellidovalidocontraseñaValida
(意外):

}

我不明白为什么会这样。输入在两种场景中都是相同的,唯一的区别是在一种情况下我调试,而在另一种情况下我不调试。从输出判断,PHP在正常运行时没有执行
EmailValido($email)

  • nombreapellidovalido
    这样的方法必须返回
    true
    false
    ,现在它们什么也不返回,意味着
    NULL
  • 看看PHP中的应用程序。试着用括号中等号右边的表达式来总结如下:
    
    $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;
        }
    }