繁体   English   中英

为什么PHP的内置函数使用常量而不仅仅是字符串作为参数?

[英]Why do PHP's built in functions use constants instead of just strings as parameters?

我注意到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)简单得多str_pad( $test, 10, 0, STR_PAD_LEFT)

(这更像是一个元问题。我希望可以在这里问一下。)

键入字符串时更容易出错。 使用未定义的常量将发出警告。 这不仅仅是一件PHP的事情。 常规API函数(即OS)通常使用数字常量以及这样的参数。

他们使用int ..并且由于区分大小写,拼写错误,解析字符串,更好的IDE,错误等,它更有效。

如果你不喜欢常量,你可以使用int值

  str_pad($test, 10, 0, 0) == str_pad( $test, 10, 0, STR_PAD_LEFT)

请注意,参数中$pad_type的类型实际上是int 传递int比传递(然后比较)字符串快得多。 因此,不是将数字传递给函数来告诉它要做什么,而是传递相应的常量,使代码更清晰。 如果PHP开发人员想要将其更改为传递字符串而不是整数,那么只要您使用常量,他们就可以在不破坏任何代码的情况下执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM