Разница между & quot; функцией ($ arg = 0) & quot; и & quot; функция ($ arg) & quot;

В официальной документации PHP я нашел где-то такие объявления:

public int save ( string $filename [, int $options ] )

а вот так:

public mixed load ( string $filename [, int $options = 0 ] )

В чем разница между обоими, на $options аргумент?

Второй, я уверен, что имеет $options аргумент установлен в 0 (когда я не указываю это).
Но первый? Разве это не говорит о том, что метод имеет 2 обязательных аргумента? (так для чего нужны квадратные скобки?).

Я пытаюсь переопределить это:

public bool schemaValidate ( string $filename [, int $flags ] )

(отпечаток пальца вставлен из schemaValidate () PHP документация)

но если я объявлю второй аргумент $flagsтогда я получаю

SchemaValidate () должна быть совместима с DOMDocument :: schemaValidate ($ filename)

Если я уберу декларацию $flags все работает (как если бы я был в < PHP 5.5.2)

Пока я бегу PHP 5.5.9 а также $flags был введен в schemaValidate() конструктор из PHP 5.5.2, почему я получаю несовместимую проблему?

Я не понимаю если документация PHP заслуживает доверия или если я должен проверить в другом месте для правильной функции отпечатка пальца, когда я хочу переопределить нативные методы.

Я пытался взглянуть на исходный код, но функция является просто псевдонимом С функция.

1

Решение

public int save ( string $filename [, int $options ] )

означает, что $options является необязательный, если не пройти $optionsего значение по умолчанию ноль

public mixed load ( string $filename [, int $options = 0 ] )

означает, что $options является необязательный, если не пройти $optionsего значение по умолчанию 0

Чтобы получить первую документацию, они должны создать функцию и переопределить их самостоятельно, как показано ниже:

public int save ( string $filename ){
//do some stuff...
}

//later in code...

public int save ( string $filename, int $options ){
//do some stuff...
}

Во втором они просто сделали что-то вроде:

public mixed load ( string $filename, int $options = 0 ){
//do some stuff...
}
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]