1

私は完全に混乱しています: 関数のメソッドが機能しないのはなぜですか?

少し問題がありますが、それがどこから来ているのかはわかりませんが、IFステートメントが原因であるかどうかを最初に確認したいのですが、Javaif(var){ //var is true }では機能しますが、PHPでは私の理解よりも複雑に思えますブール値。

return true;チェックで使用した関数から取得した後、ブール値が true かどうかを確認しようとしています。

私のコードの一部はこれです。

場合:if($user->userValidMC($_POST['username']) === true 機能:

    public function userValidMC($user){

        // grab data
        $minecraftOutput = file_get_contents('https://www.minecraft.net/haspaid.jsp?user=' . $user . '');

        return $minecraftOutput;

    }

何か間違ったことをチェックしていますか、それともコード (関数) が完全に間違っていますか?

4

6 に答える 6

2

リモート サービスは、 または のいずれかの文字列を返す'true'ため'false'、戻り値は次のようになります。

return trim($minecraftOutput) === 'true';
于 2013-05-03T14:08:33.183 に答える
0

投稿した場合、関数「userValidMC」が true を返したかどうかをチェックします。=== を使用していることに注意してください。したがって、値が true と評価されるかどうかだけでなく、実際の「true」ブール値をチェックしていることに注意してください (== を使用) )。

if($user->userValidMC($_POST['username']) === true)

ただし、その関数は file_get_contents の結果を返します ( http://php.net/manual/en/function.file-get-contents.php )

この関数はファイルの内容を返すか、失敗すると false を返すため、決して true を返すべきではありません。

この方法で結果を確認できます。

if($user->userValidMC($_POST['username']) !== false)
于 2013-05-03T14:09:05.610 に答える