0

アプリケーションのログイン機能を完了していますがtrying to get property of non object、数行で を受け取ります。最初のものは、user_data オブジェクト内のオブジェクト プロパティ lock_date を使用して is_user_locked メソッドへの関数呼び出しを実行する以下に示されています。これは、この時点で使用する user_data がないため、プロパティを使用できないことを意味することを理解しています。ネストされた if ステートメントを多用しすぎないように、これをどのように説明すればよいか知りたいです。

if (count($user_data) == 0) {
    $output = array('content' => 'The user was not found in the database!', 'title' =>
                'User Not Found');
}

if ($this->is_user_locked($user_data->lock_date)) {
     $output = array('content' => 'This user account is currently locked!', 'title' =>
                'Account Locked');
}

なぜこれが考えられるのかについてのアイデアはありますか?すべての提案が役に立ちます。

4

4 に答える 4

1

あなたはこれを行うことができます:

if (count($user_data) == 0) {
    $output = array('content' => 'The user was not found in the database!', 'title' =>
                'User Not Found');
} else if ($this->is_user_locked($user_data->lock_date)) {
     $output = array('content' => 'This user account is currently locked!', 'title' =>
                'Account Locked');
}

これは最初のコードとほとんど同じですが、elseスローされています。

于 2013-07-30T04:59:45.083 に答える
1

ネストされた if ステートメントを多用しすぎないように、これをどのように説明すればよいか知りたいです。

このようなものはどうですか?

if( $user_data ) {
    // $user_data contains something so let's proceed
    if ($this->is_user_locked($user_data->lock_date)) {
        $output = array('content' => 'This user account is currently locked!', 'title' => 'Account Locked');
    }
} else {
    // Nothing in $user_data so throw Exception or display error
    $output = array('content' => 'The user was not found in the database!', 'title' =>
                'User Not Found');
}

このリンクを参照してください。

if($var): same as $var == NULL.
于 2013-07-29T05:09:44.117 に答える