Kaklz Posted July 16, 2004 Report Share Posted July 16, 2004 Cik man zināms @ netaisa ciklu. @ lieto, lai lietotājs neredzētu kļūdas. Piemēram:Ja raksta mysql_connect, bet nevar piekonektēt, tad lietotājs redzēs kļūdas paziņojumu (pie attiecīgiem error_reporting), a bet, ja raksta @mysql_connect, tad pie jebkādiem erorr_repoerting vērtībām, lietotājs neko redzēs, un kļūdas varēs apstrādāt programātiski un attiecīgi rīkoties. Kļūdas apstrādāt diez vai varēs. Viņš pat neiepīkstēsies, ja kaut kas noies greizi. Tā arī ir tā atšķirība. Kļūdas var apstrādāt tad, ja nav @ priekšā un tu esi nodefinējis savu error hadling funkciju. Vai arī tad, ja tu izmanto PHP5 un viņa try..catch struktūru Link to comment Share on other sites More sharing options...
bubu Posted July 16, 2004 Report Share Posted July 16, 2004 Ar apstrādāt kļūdas biju domājis to, ka dažas fukcijas, piemēram, mysql_query, atgriež FALSE, ja noiet kautkas dēlī. :) Un tad programētājs raksta: $result = @mysql_query('select 1+1'); if ($result === false) { echo 'notikusi liela nelaime'; } else { $row = mysql_fetch_row($result); ... } Link to comment Share on other sites More sharing options...
Venom Posted July 19, 2004 Report Share Posted July 19, 2004 arī šis te nostrādās: if (!($result = @mysql_query('select 1+1'))) { echo 'notikusi liela nelaime'; } pēc php "labās rokas" likuma tik novērtēts mysql_query('select 1+1') gabals. te var būt 2 rezultāti: a) atgriež false - nepareizs query B) atgriež "tukšu" vērtību - query izpildās, bet neatgriež resursa pointeri abos gadījumos @ nospiež kļūdas un $result tāpatās iegūst "tukšu" vērtību (NULL, vai tukšvirkni - '', fvz). Tukšvērtības iekš if pārtop par boolean false. Link to comment Share on other sites More sharing options...
Recommended Posts