Jump to content
php.lv forumi

PHP fopen


spynode

Recommended Posts

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

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

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

×
×
  • Create New...