質問
PHPの公式ドキュメントで、次のような宣言をどこかで見つけました。
public int save ( string $filename [, int $options ] )
そしてこのように:
public mixed load ( string $filename [, int $options = 0 ] )
$options
議論について、両者の違いは何ですか?
$options
2番目のものは、引数が0に設定されていると確信しています(指定しない場合)。しかし、最初のもの?メソッドには2つの必須引数があると言っているのではありませんか? (では、角括弧は何のためですか?)。
例
私はこれをオーバーライドしようとしています:
public bool schemaValidate ( string $filename [, int $flags ] )
( schemaValidate() PHP ドキュメントから貼り付けられたフィンガープリント)
しかし、2 番目の引数を宣言すると$flags
、
SchemaValidate() は DOMDocument::schemaValidate($filename) と互換性がある必要があります
$flags
すべての動作の宣言を削除すると( PHP 5.5.2未満 の場合のように)
PHP 5.5.9を実行し、 PHP 5.5.2からコンストラクター$flags
に導入されましたが、互換性の問題が発生するのはなぜですか?schemaValidate()
ネイティブ メソッドをオーバーライドしたい場合、PHP ドキュメントが信頼できるかどうか、または適切な関数フィンガープリントを別の場所で確認する必要があるかどうかがわかりません。
ソースコードを見てみましたが、この関数は単なるC関数のエイリアスです。