关于PHP的档案()中的一些怪癖,我有两个问题。
有些保留字不能用作ini文件的密钥。包括:空,是,不,真,假,开,关,不。除非使用INI_SCANNER_TYPED模式(如PHP5.6.1),否则null、off、no和false会导致"",而值on、“是”和“真”则会导致"1“。
根据以上所述,如果设置了no,则可以使用INI_SCANNER_TYPED作为键。那为什么它会失败呢?
$ echo "no=1" > a.cfg | php -r 'print_r(parse_ini_file("a.cfg", TRUE, INI_SCANNER_TYPED));'
PHP Warning: syntax error, unexpected BOOL_FALSE in tmp.cfg on line 1
$ php --version
PHP 7.1.14 (cli) (built: Feb 2 2018 08:41:46) ( NTS )另外,下面列出的字符的“特殊含义”是什么?手册没有详细说明。
字符?{}&~()^“不能在键中使用,并且在值中具有特殊的含义。
发布于 2018-04-02 09:41:40
你曲解了你引用的课文。上面写着:
值
null、off、no和false导致"",值on、yes和true导致"1",除非使用INI_SCANNER_TYPED模式(如PHP5.6.1)。
上面写的是价值。在默认模式下,这些值被转换为字符串""和"1"。在INI_SCANNER_TYPED模式中,这些值被转换为布尔值false和true。
它没有提到钥匙的事。这些词仍然不能用作键。
检查它的工作原理:https://3v4l.org/5uZFN
https://stackoverflow.com/questions/49608429
复制相似问题