Jump to content
php.lv forumi

Recommended Posts

Posted (edited)

'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
  • Replies 38
  • Created
  • Last Reply

Top Posters In This Topic

Posted (edited)

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
Posted

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.

Posted (edited)

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
Posted

'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.

Posted (edited)

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
Posted

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 :)

Posted (edited)

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
Posted

codez, šoreiz rATRIJam taisnība ne tikai no performance viedokļa, bet arī no pareizrakstības viedokļa:

$p[0]='asdf';
var_dump((int)@$p[0]);
$p[0]=0;
var_dump((int)@$p[0]);
unset($p[0]);
var_dump((int)@$p[0]);

Visās konstrukcijās rezultāts vienāds

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...