问题
在 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并从PHP 5.5.2$flags
引入schemaValidate()
构造函数时,为什么会出现不兼容的问题?
当我想覆盖本机方法时,我不知道PHP 文档是否可信,或者我是否应该在其他地方检查正确的函数指纹。
我试图查看源代码,但该函数只是C函数的别名。