Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么要使用PHP';s内置函数使用常量而不是字符串作为参数?_Php - Fatal编程技术网

为什么要使用PHP';s内置函数使用常量而不是字符串作为参数?

为什么要使用PHP';s内置函数使用常量而不是字符串作为参数?,php,Php,我注意到PHP的内部函数从不使用字符串作为预定义值或限制值,只使用常量 : 垫块类型: 可选参数pad_类型可以是STR_pad_RIGHT、STR_pad_LEFT或STR_pad_两者。如果未指定pad_类型,则假定为STR_pad_RIGHT 这里不使用字符串作为参数的原因是什么 stru-pad($test,10,0,'left')似乎比str-pad($test,10,0,str-pad,'left')简单得多。 (这更像是一个元问题。我希望可以在这里提问。)键入字符串时更容易出错。使

我注意到PHP的内部函数从不使用字符串作为预定义值或限制值,只使用常量

:

垫块类型

可选参数pad_类型可以是STR_pad_RIGHT、STR_pad_LEFT或STR_pad_两者。如果未指定pad_类型,则假定为STR_pad_RIGHT

这里不使用字符串作为参数的原因是什么

stru-pad($test,10,0,'left')
似乎比
str-pad($test,10,0,str-pad,'left')简单得多。


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

键入字符串时更容易出错。使用未定义的常量将引发警告。这不仅仅是一个PHP的东西。常规API函数(即操作系统的函数)通常也使用数值常量作为此类参数。

它们使用
int
。。由于区分大小写、拼写错误、解析字符串、更好的IDE、错误等原因,这种方法更有效

若你们不喜欢常数,你们可以用int值

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

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

使用带intellisense的IDE时,有一个非常大的优势。另外,添加:对于函数的可维护性。假设函数的内部发生变化,那么参数值和类型也很可能发生变化。使用常量而不是任意字符串进行定义更有意义。