0

私はPHPにクラスを持っています、そしてそれを呼び出すとき、関数__construct($_POST)はプロセスでなければなりません。

__construct()関数は次のように定義します:

// Constructor Function
function __construct($_POST){
    $this->customer       = trim($_POST['customer']);
    $this->CreateDate   = date('Y/m/d');    
}

クラスで関数を呼び出すと、その関数が処理されてデータベースに挿入されますが、このマッサージが表示されます:-

Missing argument 1 for Draft::__construct(), called in .... 

私のコードの何が悪いのか

ありがとう

4

4 に答える 4

3

私はあなたの意図について混乱しています。

$_POSTPHPスーパーグローバルです。つまり、すべてのスコープで使用できます。

投稿されたデータを使用する場合:

引数として渡す必要はありません

たまたま$_POSTを呼び出す変数を渡す場合は、次のようにします。

変数の名前を変更します。

于 2013-03-01T23:19:32.837 に答える
1

2つの間違い:

  1. クラスコンストラクターは、引数としてスーパーグローバルを取ります。
  2. オブジェクトを構築するための呼び出しに引数を渡さない可能性があります。

2番の場合は、次の電話番号に電話する必要があります。

$draft = new Draft($var);

于 2013-03-01T23:17:54.090 に答える
0

$_POSTPHPは、、、、$_GETおよび$_COOKIE「Illegaloffset」などの予約変数を使用しようとしたときにも通知をスローする必要があります。

あなたの質問から、あなたは関数パラメータと引数の違いを理解していないようです。あなたはすでに引数を渡していますが、それはパラメータであるはずです。

これ:

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);
于 2013-03-01T23:23:35.493 に答える
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');    
    }
于 2013-03-01T23:41:57.723 に答える