Я думаю, что все, что вы делаете, вполне нормально, однако вы можете объединить выражения.Он делает то же самое, и в случае, если функция возвращает false, выражение не будет следовать для остальных (оптимизация во время выполнения):
if($ext == "gif" or $ext == "png"){
if (
@imagecolortransparent($new, imagecolorallocatealpha($new, 0, 0, 0, 127))
and @imagealphablending($new, false)
and @imagesavealpha($new, true)
) return true;
return false;
}
или с использованием переменной и , сохраняявторое, если это делает его более выразительным:
if($ext == "gif" or $ext == "png")
return
@imagecolortransparent($new, imagecolorallocatealpha($new, 0, 0, 0, 127))
&& @imagealphablending($new, false)
&& @imagesavealpha($new, true)
;