在我询问问题之前,我会阅读建议的链接,但它对我没有帮助。
我的问题是当我尝试实例化一个时。
错误是:
注意:未定义的变量:userCore in /Applications/MAMP/htdocs/proyecto_cice/app/web/controller/controllerFormUser.php 第74行
我知道这个通知的含义,所以我使用了函数class_exists(),我给了我真实的。我使用了这个功能,因为我的第一个想法是我在课堂上犯了一个错误,但这不是问题所在。
我在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';
}
}
?>
文件&#39; load.php&#39;包含:
<?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);
}
}
由于
答案 0 :(得分:1)
变量$userCore
在您的函数中不可用,因为它在外部作用域中定义。你需要提供它:
[...]
function signup($form){
global $userCore;
[...]
顺便说一句,做这样的事情被认为是不好的做法,这违背了OOP原则。如果你使siginup
类成为UserCore
类的方法,或者为此使用某种渲染实用程序类,那么你会更好地将UserCore
的实例作为其中一个相反,函数的参数。