Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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 实例中的错误在哪里?_Php_Oop - Fatal编程技术网

Php 实例中的错误在哪里?

Php 实例中的错误在哪里?,php,oop,Php,Oop,在我询问这个问题之前,我阅读了建议的链接,但它并没有帮助我 我的问题是当我尝试实例化一个类时 错误是: 注意:未定义变量:中的userCore /Applications/MAMP/htdocs/proyecto_cice/app/web/controller/controllerFormUser.php 第74行 我知道这个通知的含义,所以我使用函数类_exists,我给我true。我使用这个函数,因为我的第一个想法是我在课堂上犯了一个错误,但这不是问题所在 我在load.php文件中声明这个

在我询问这个问题之前,我阅读了建议的链接,但它并没有帮助我

我的问题是当我尝试实例化一个类时

错误是:

注意:未定义变量:中的userCore /Applications/MAMP/htdocs/proyecto_cice/app/web/controller/controllerFormUser.php 第74行

我知道这个通知的含义,所以我使用函数类_exists,我给我true。我使用这个函数,因为我的第一个想法是我在课堂上犯了一个错误,但这不是问题所在

我在load.php文件中声明这个对象,因为我在其他文件中也需要它

我理解这个错误,但我找不到。如果你能帮忙,我将不胜感激

我尝试实例类的主文件中的代码:

<?php
require '../load.php';

function signup($form){
    if( $form['pass']== $form['repass'] ){

    $exists = $userCore->find_mail( filter_project_form() );

    if($exists==''){
        $isCorrect = ($userCore->insert_user( filter_project_form() ));
            if($isCorrect){echo 'correct';}
    }
    else{
        echo "The user exists now";
    }
  }
  else{
    echo 'The passwords must be identical';
  }
}
?>
文件“load.php”包含:

<?php
//CONFIG
require 'config.php';
require 'constants.php';

//CORE
require 'core/ddbb.php';
require 'core/user.php';
</code>
//CLASS MODEL
require 'model/class_user.php';

//CONTROLLER
require 'controller/controllerUser.php';

//INSTANCIA
$userCore = new User_core();
文件core/user.php是:

<?php
class User_core extends DDBB_core{
    function find_mail($form){
       $sql = "SELECT email FROM user WHERE email='".$form['mail']."'";
        return $this->executeSelectQuery($sql);
    }
}
谢谢,

变量$userCore在函数中不可用,因为它是在外部范围中定义的。您需要使其可用:

[...] 

function signup($form){
    global $userCore;

    [...]

顺便说一句,这样做被认为是不好的做法,它违反了面向对象的原则。最好是将siginup作为UserCore类的方法,或者为此使用某种呈现实用程序类,将UserCore的实例作为参数之一传递给函数。

局部变量$UserCore用于函数注册,但不会在任何地方初始化。阅读相关文章。落选的选民愿意向OP解释他们的投票吗?@George没有人有义务这么做。@deceze我知道,但如果他们有一些理由的话,对OP来说是件好事。