2015-09-04 31 views
0

嗨我想分頁數據沒有創建這麼多的功能。我決定合併函數(一個加載一個問題,一個加載所有問題),它從我的數據庫中獲取所有數據。如何在PHP中表示一個非常大的數字?

我有這個函數調用我的分頁:

$this->get_questions_incrementally(null, $id, $page_no, $items_per_page);

我通常在一次讓所有的提問時這樣做:

$this->get_questions_incrementally(null, $id, $page_no=0, $items_per_page=999999);

如何代表$items_per_page是無窮?

我在做一個非常糟糕的主意,實際上是否有比這更好的解決方案?

+0

這是香草的Javascript嗎? – Tushar

+0

'PHP_INT_MAX'就可以了 – zerkms

回答

1

我的建議是要有一個標記值。你並不是真的想要獲取無數的行。你想要所有的行。

如果您可以控制所調用的方法,則合理的做法是將$items_per_page = -1作爲標記值接受,表示您希望得到所有結果。或者,如果您不能控制該代碼,則按照@zerkms的建議,我會使用PHP_INT_MAX。

實現這一點的,像這樣

function get_questions_incrementally($a, $id, $page_number, $items_per_page) { 
    if ($items_per_page == -1) { 
     $LIMIT = ""; 
    } else { 
     $LIMIT = " LIMIT $items_per_page"; 
    } 
    //blah blah query building 
    //at this point $query is ready for attachment of a LIMIT clause 
    $query = $query . $LIMIT; 
    //run query 
} 
+0

我完全控制了代碼。我將如何實現這個定點值? –

1

我首選的方式做到這一點時,我有多個參數(其中有些可能是可選的)是創建setter函數的對象。這樣,你可以這樣做:

$objectname->setId($id);  
$objectname->setAll(true); 

在你的對象你也實現變量,如$current_question$current_page$questions_per_page,並有一個名爲get_next_question_set()功能。

但是,如果你喜歡使用函數式編程對於這一點,由於PHP是弱類型,也可以只是這樣做:

$this->get_questions_incrementally(null, $id, $page_no=0, $items_per_page="ALL"); 

,然後就看到一個檢查,如果該值等於字符串到「ALL」或一個整數。

相關問題