我上了PHP课程,当调用它时,函数__construct($_POST)
必须处理。
__construct()
函数定义为:
// Constructor Function
function __construct($_POST){
$this->customer = trim($_POST['customer']);
$this->CreateDate = date('Y/m/d');
}
当我在类上调用任何函数时,它会被处理并插入到DataBase中但是这个按钮出现了: -
Missing argument 1 for Draft::__construct(), called in ....
我的代码有什么问题
thankx
答案 0 :(得分:3)
我对你的意图感到困惑。
$_POST
是PHP superglobal,意味着它适用于所有范围。
如果您打算使用发布的数据:
无需将其作为参数传递
如果您传递的变量恰好叫做$ _POST:
更改变量的名称。
答案 1 :(得分:1)
有两件事:
对于2号,你应该打电话:
$draft = new Draft($var);
答案 2 :(得分:0)
当您尝试使用保留变量时,PHP也应该发出通知,例如$_POST
,$_GET
和$_COOKIE
“非法偏移”。
从您的问题来看,似乎您不理解the difference between function parameters and arguments。你已经传递了一个参数,而它应该是一个参数。
此:
function __construct($_POST){
$this->customer = trim($_POST['customer']);
$this->CreateDate = date('Y/m/d');
}
应改写为:
function __construct($POST){
$this->customer = trim($POST['customer']);
$this->CreateDate = date('Y/m/d');
}
然后:
$object = new YourClass($_POST);
答案 3 :(得分:0)
$_post is super global variable and you are using as constructor parameter change the variable name
function __construct($post){
$this->customer = trim($post['customer']);
$this->CreateDate = date('Y/m/d');
}
Or Second remove $_Post in constructor parameter
function __construct(){
$this->customer = trim($_POST['customer']);
$this->CreateDate = date('Y/m/d');
}