Andrei Ermicioi's Blog

Just another WordPress.com weblog

index.php?page=1

Din pacate titlul postului nu exprima concrete ce am dorit sa scriu acum.
Deci ideea e urmatoarea, cum sa obtin numarul paginei cerute de client? Ex.
avem pagina index.php?page=1 in cod trebuie sa obtinem valoare la parametrul page, o facem simplu

$page = $_GET['page'];

sigur trebuie apoi $page sa fie prelucrat ca sa nu fie trimis un SQL Injection sau chiar valoare negativa a paginei, -1 si iata solutia simpla este sigur:

$page = (isset($_GET['page'] && $_GET['page'] > 0) ? (int)$_GET['page'] : 0;

dar mi-a venit si o astfel de idee:

$page = (isset($_GET['page']) ? abs((int)$_GET['page']) : 0

parerea mea e ca arata putin mai elegant, dar care e mai rapdi?
xdebug_trace mi-a aratat rezulatele:


0.0016 pentru if()
0.0482 pentru abs()

sigur este timpul de executie. Codul pentru test a fost:


$numbers = array();
xdebug_start_trace('/tmp/if.xt');
for ($i = -1000; $i < 0; $i++) {
$value = ($i > 0) ? $i : 0;
}
xdebug_stop_trace();

xdebug_start_trace('/tmp/abs.xt');
for ($i = -1000; $i < 0; $i++) {
$value = abs($i);
}
xdebug_stop_trace();

Deci totusi variantul cu if() a fost mai rapdi, bun il folosesc atunci pe el.

Advertisements

Written by eraniblog

April 20, 2010 at 13:02

Posted in Coding

%d bloggers like this: