Jump to content
php.lv forumi

Kā izveidot vienkāršu Routing Framework-u


codez

Recommended Posts

'id' => (isset($p[2]) && is_numeric($p[2])) ? $p[2] : ''

 

is_numeric id piešķirs ne '' vērtību arī tad, ja pados '3.1415' un '1e4', jau otrais mēģinājums uztaisīt "pareizāk" un garām. Varbūt tomēr šādi ir vienkāršāk?:

 

$id=(int)@$p[2];

Edited by codez
Link to comment
Share on other sites

  • Replies 38
  • Created
  • Last Reply

Top Posters In This Topic

Ar ko objektīvi

 

if(isset($p[2]) {
$id = (int)$p[2];
}

 

labāks par

 

$id=(int)@$p[2];

 

????

 

Ja interesē tādi performances sīkumi, tad jākodē c++.

Un vieglāk jau nu gan nav lasāms. Ja pārzin abu paternu funkcionalitāti no galvas, tad vieglāk lasāms vienmēr ir īsākais.

Edited by codez
Link to comment
Share on other sites

Es nekad nedzīšos pakaļ tādiem performances sīkumiem, kas man apgrūtina programmēt, jo tās vietas nav bottleneck-i. Nu, ies aplikācija par 0.0001% ātrāk?

Kas man no tā, ka tā rindiņa eis ātrāk par 0,00002 sekundēm, ja nākamjā man ir db kverijs, kurš aizņem 0,1 sekundi? nekas.

Link to comment
Share on other sites

ir jābūt idiotam, lai nemēģinātu optimizēt koda ātrdarbību

 

Esi kaut ko dzirdējis par 80/20 principu? Jā nē, tad pameklē un pamācies.

Cik saprotu, tad OOP tu neizmanto, jo savādāk esi paša nosaukts idiots, jo OOP PHP ir lēnāks kā programmēšana izmantojot funkcijas.

 

P.S. Un vispār kāpēc tev tēlot idiotu un programmēt PHP? Viņš taču ir tik lēns, kodē asamblerā.

Edited by codez
Link to comment
Share on other sites

'id' => (isset($p[2]) && is_numeric($p[2])) ? $p[2] : ''

 

is_numeric id piešķirs ne '' vērtību arī tad, ja pados '3.1415' un '1e4', jau otrais mēģinājums uztaisīt "pareizāk" un garām. Varbūt tomēr šādi ir vienkāršāk?:

 

$id=(int)@$p[2];

 

Nu es neteiktu, ka garām. Tavā piemērā tu tieši tāpat izvadi parametru no urļa. Tad, kur ir problēma manā piemērā - izvadīsies 3.1415 and so what ? Tā tāpat nav nopietna datu validācija un izvade.

Link to comment
Share on other sites

Tad, kur ir problēma manā piemērā - izvadīsies 3.1415 and so what ?

 

Problēma ir tur, ka realitātē urļa datus tālāk izmanto, lai būvētu db kveriju.

 

 

$id=(int)@$p[2];
if ($id!=0){
 $res=mysql_query('SELECT * FROM users WHERE id='.$id);
}

$id=(isset($p[2]) && is_numeric($p[2])) ? $p[2] : '';
if ($d!=''){ // ups, izsaucam kveriju arī tad, ja padoti '3.1415' vai '1e4', kas nav valīdi id 
 $res=mysql_query('SELECT * FROM users WHERE id='.$id);
}

Edited by codez
Link to comment
Share on other sites

Nu vecīt, kad runa būs par kverijiem, tad arī datus apstrādās atbilstoši situācijai.

 

Bet ja tev tik ļoti gribas būt sīkumainam - vai tad man žēl:

 

Tavā gadījumā ir muļķīgi if'ot tikai vienu keisu, kur tad paliek negatīvie int'i (redz, tas pats, par ko piesējies man) ? Pastudē nākamreiz http://www.php.net/manual/en/language.types.integer.php pirms gribi pierādīt savu taisnību :)

Link to comment
Share on other sites

Neredzēju kurā vietā tu man aizrādīji, tikai piedāvāji kaut kādus citus variantus, kas manuprāt ir sliktāki (daži pat nestrādājoši). Turpinot tev paskaidrot, kāpēc tavs variants man šķiet sliktāks, tu sāki man piedēvēt sīkumainību, aizmirsdams, ka diskusija mūsu starpā sākās tieši ar tavu sīkumainību. Turpmāk lūdzu tevi iztikt bez divkosības.

Edited by codez
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...