2013-10-29 105 views
0

我在PHP中新,我试图做在PHP 5的工作,所以我有称为参数化的功能,但它给了我异常“警告:缺少参数1”这里是我的课PHP的警告:缺少参数1

class EditUser extends DBConn 
{ 

private $id; 
function editUser($id) 
{ 
    $this->id = $id; 
    echo $id; 
    die; 

    $rows =array(); 
    self::Set_DBConni(); 
    $mysqli = self::get_Conn(); 
    $result = $mysqli->query("SELECT * FROM users where id ='".$id."' "); 

     while($row = $result->fetch_row()) 
     { 
      $rows[] = $row; 

     } 


     return $rows; 

     /* free result set */ 
     $result->close(); 

     /* close connection */ 
     $mysqli->close(); 

} 


} 

,这是我怎么称呼它

include_once('include/classes/edituser.php'); 

$objPage = new EditUser(); 

$objPage->editUser($_GET['id']); 

但它显示我的警告,那就是

Warning: Missing argument 1 for EditUser::editUser(), called in E:\xampp\htdocs\WaleedWork\claremont\admin\edit_user.php on line 45 and defined in E:\xampp\htdocs\WaleedWork\claremont\admin\include\classes\edituser.php on line 8 

Notice: Undefined variable: id in E:\xampp\htdocs\WaleedWork\claremont\admin\include\classes\edituser.php on line 10 

Notice: Undefined variable: id in E:\xampp\htdocs\WaleedWork\claremont\admin\include\classes\edituser.php on line 11 

请ŧ请问我有什么不对,因为我认为我正在使用正确的方式来称呼它。

+3

so'$ _GET ['id']'没有设置。永远不要相信用户的输入! – k102

+0

如果你使用'$ _GET',那么你应该在你的查询字符串上有一个id:'http:// localhost?id = 1',其中id是1 –

+0

我对我的查询字符串 – user2930808

回答

1

editUser方法是一个构造函数,你可以做这个

$objPage = new EditUser($_GET['id']);

+1

@Downvoter:照顾解释? – user2092317

+1

答案是对的 – user2930808

+1

我注意到人们为了乐趣而在这里下了投票 – user2930808

0

类的构造器为__construct(PHP 5 +)或的类本身(传统风格的名字)。因此,您的editUser方法被视为构造函数,并且调用new EditUser,并且您在那里缺少参数。

+0

是的,你是对的 – user2930808