0

私は次のようにPHPでarray_sliceを使用しています:

if (isset($_GET['page']) && !isset($no_pagination)) {
        $page_num = mysql_real_escape_string($_GET['page']);
        $limit_value_from = $page_num * 10;
        $limit_value_to = $limit_value_from + 10;
        $limit_query = $limit_value_from.", ".$limit_value_to;
    }

if (!isset($no_pagination) && isset($limit_query)) {
        $usernames_new = array_splice($usernames, $limit_query);
        $usernames = $usernames_new;
    }

スクリプトを実行すると、次のエラーが発生します。整形式ではない数値が検出されました。$ limit_query文字列をエコーすると、正しい0、10 10、20 20、30の値が得られます。関数に手動で0、10 10、20などを入力すると、正常に機能します。適切にフォーマットされているのに、なぜこのエラーが発生するのですか?

注:配列のスプライス行の前に@記号を配置すると、コードは正常に機能します...このエラーが発生している理由を知りたいだけです。

4

1 に答える 1

2

そのメソッドに対して間違った引数を渡しているように見えます。2番目の引数はINTです。

array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )

これを試して:

$usernames_new = array_splice($usernames, $limit_value_from, $limit_value_to);
于 2013-02-05T19:30:09.970 に答える