try {
include('');
} catch(e) {
die('error');
}
или
@include('') or die('error');
или
if (file_exists('')) {
include('');
}
или
$result = ('SELECT 1 FROM files WHERE file_name="" LIMIT 1');
if ($result) {
include('');
}
Правильнее. Собака не избавляет от ошибки, она лишь подавляет ее вывод
А try-catch позволяет не только подавить, но и еще принять какие-то конкретные меры. по скорости - очень забавно. Если все идет гладко, это самый быстрый способ, за исключением просто голого кода. При возникновении ошибки - один из самых медленных.
<?php
$time = microtime(true);
for($i=0;$i<1000000;$i++){
@divByZero($i,0);
}
print((microtime(true)-$time).'<br />');
//1.66923713684 - делим на 0
//1.25963785172 - делим на 3
$time = microtime(true);
for($i=0;$i<1000000;$i++){
try{
divByZeroE($i,0);
}catch(Exception $e){
}
}
print((microtime(true)-$time).'<br />');
//5.61499404907 - делим на 0
//0.690489969254 - делим на 3
$time = microtime(true);
for($i=0;$i<1000000;$i++){
divByZeroIfOnly($i,0);
}
print((microtime(true)-$time).'<br />');
//0.69531083107 - делим на 0
//0.69578036312 - делим на 3
function divByZero($a,$b){
return $a/$b;
}
function divByZeroE($a,$b){
if($b==0)
throw new Exception('Division By Zero');
return $a/$b;
}
function divByZeroIfOnly($a,$b){
if($b==0)
return false;
return $a/$b;
}
теперь полный? =)