codez Posted August 29, 2010 Author Report Share Posted August 29, 2010 (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 August 29, 2010 by codez Quote Link to comment Share on other sites More sharing options...
spainis Posted August 29, 2010 Report Share Posted August 29, 2010 (edited) nu tad if(isset($p[2]) { $id = (int)$p[2]; } uzreiz vieglāk lasāms kods bez performance penalty Edited August 29, 2010 by spainis Quote Link to comment Share on other sites More sharing options...
codez Posted August 29, 2010 Author Report Share Posted August 29, 2010 (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 August 29, 2010 by codez Quote Link to comment Share on other sites More sharing options...
spainis Posted August 29, 2010 Report Share Posted August 29, 2010 (edited) ar šo ir jābūt idiotam, lai nemēģinātu optimizēt koda ātrdarbību jeb šajā gadījumā, kā codez saka tā tam būs būt XD Edited August 29, 2010 by spainis Quote Link to comment Share on other sites More sharing options...
codez Posted August 29, 2010 Author Report Share Posted August 29, 2010 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. Quote Link to comment Share on other sites More sharing options...
codez Posted August 29, 2010 Author Report Share Posted August 29, 2010 (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 August 29, 2010 by codez Quote Link to comment Share on other sites More sharing options...
xcwcx Posted August 29, 2010 Report Share Posted August 29, 2010 '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. Quote Link to comment Share on other sites More sharing options...
codez Posted August 29, 2010 Author Report Share Posted August 29, 2010 (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 August 29, 2010 by codez Quote Link to comment Share on other sites More sharing options...
spainis Posted August 29, 2010 Report Share Posted August 29, 2010 (edited) (int)3.1415 takš ir 3 un (int)1e4 takš ir 1 Edited August 29, 2010 by spainis Quote Link to comment Share on other sites More sharing options...
codez Posted August 29, 2010 Author Report Share Posted August 29, 2010 spaini, es tev to nerakstīju. Quote Link to comment Share on other sites More sharing options...
xcwcx Posted August 29, 2010 Report Share Posted August 29, 2010 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 :) Quote Link to comment Share on other sites More sharing options...
codez Posted August 29, 2010 Author Report Share Posted August 29, 2010 Bet ja tev tik ļoti gribas būt sīkumainam - vai tad man žēl: EPIC, ņemot vērā to ,kurš te pirmais sāka kļūt sīkumains. Quote Link to comment Share on other sites More sharing options...
xcwcx Posted August 30, 2010 Report Share Posted August 30, 2010 Eh... Nevajag tik ļoti pārdzīvot, ja kāds aizrāda :) Quote Link to comment Share on other sites More sharing options...
codez Posted August 30, 2010 Author Report Share Posted August 30, 2010 (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 August 30, 2010 by codez Quote Link to comment Share on other sites More sharing options...
Леший Posted August 30, 2010 Report Share Posted August 30, 2010 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.