Если есть необязательные параметры или претенденты на это звание, то размещать их нужно справа. Тогда можно использовать такой вариант:
abstract class GlobalClass {
...
protected function isExists($value, $field) {
return $this->db->isExists($this->table_name, $field, $value);
}
}
...
class User extends GlobalClass {
...
public function isExists($value, $field=null) {
$field = 'login';
return parent::isExists($value, $field);
}
}
Менять порядок обязательных параметров слева не стоит. Если он у родителя первый, то и у потомка должен быть первым.
И судя по
public function isExists($login) {
return $this->isExists("login", $login);
}
следующей ошибкой будет
Maximum function nesting level. Используйте
parent.