Re: Error suppression operator (@)
| From: | Jochem Maas | Date: | Wed, 04 May 2005 18:14:13 +0000 |
| Subject: | Re: Error suppression operator (@) | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-214454@lists.php.net to get a copy of this message | ||
Greg Donald wrote:
On 5/3/05, GamblerZG <gambler@highstream.net> wrote:Greg makes some good points. in short don't use @ lightly, in theory you are never required to use it at all. in some situations you may have an intensive/heavy function or loop which access array items (inside the loop) which may or may not be set... in such cases you may find you want/need to try and optimize.... foreach($arr1 as $a) {I would like to know, whether using @ is a good practice.I try not to use it much, but when I do I back it up with checking to see if an error really occured. I use it for file handles, database handles, stuff that I really expect to break sometimes. I don't ever use it to assist with sloppy coding style, not defining variables and such. In fact I always code with error_reporting( E_ALL ) until I take the code into production.
// if (isset($arr2[ $a ])) {
if (@$arr2[ $a ]) {
// ...
}
// ...
}
this example assumes that $arr2 is an array and that every
item you are checking will cast to boolean true (e.g. the
value 0 will cast to false) -- so on a few occasions you
can 'cheat' with the @ and grab a cycle or 2, but be
very careful what you are doing.
have fun :-)
For example, I have an array of unknown length $array. Is it all right write something like this: @list($first, $second) = $array;I go with $array[0], $array[1] and such. Or maybe while( list( $k, $v ) = each( $array ) ) { }