我注意到PHP的内部函数从不使用字符串作为预定义或有限值,只使用常量。
pad_type :
可选参数pad_type可以是STR_PAD_RIGHT,STR_PAD_LEFT或STR_PAD_BOTH。如果未指定pad_type,则假定为STR_PAD_RIGHT。
这里不使用字符串作为参数的原因是什么?
str_pad($test, 10, 0, 'left')
似乎比str_pad( $test, 10, 0, STR_PAD_LEFT)
(这更像是一个元问题。我希望可以在这里问一下。)
答案 0 :(得分:5)
键入字符串时更容易出错。使用未定义的常量将发出警告。这不仅仅是一件PHP的事情。常规API函数(即OS)通常也使用数字常量以及类似的参数。
答案 1 :(得分:1)
他们使用int
..由于区分大小写,拼写错误,解析字符串,更好的IDE,错误等,它更有效率。
如果你不喜欢常数,你可以使用int值
str_pad($test, 10, 0, 0) == str_pad( $test, 10, 0, STR_PAD_LEFT)
答案 2 :(得分:1)
请注意,参数中$pad_type
的类型实际上是int
。传递int比传递(然后比较)字符串快得多。因此,不是将数字传递给函数来告诉它要做什么,而是传递相应的常量,使代码更清晰。如果PHP开发人员想要将其更改为传递字符串而不是整数,只要您使用常量,他们就可以在不破坏任何代码的情况下执行此操作。