Оба имеют хорошую производительность.Проверка простой переменной if выполняется очень быстро.Теоретически второе быстрее, но вы вряд ли сможете измерить разницу.
Семантически, однако, они не одинаковы.Если заданы как $ catid, так и $ subcatid, в первой ситуации выполняется как первое, так и второе действие, тогда как во второй ситуации выполняется только первое действие.
Так что всегда будьте осторожны с 'оптимизации, как это.Вы можете сделать свой код на наносекунду быстрее, но он может быть менее читаемым и даже сломаться!