Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

php

I noticed that PHP's internal functions never use strings for pre-defined or limited values, only constants.

For example:

pad_type:

Optional argument pad_type can be STR_PAD_RIGHT, STR_PAD_LEFT, or STR_PAD_BOTH. If pad_type is not specified it is assumed to be STR_PAD_RIGHT.

What's the reason for not using a string as parameter here?

str_pad($test, 10, 0, 'left') seems a lot simpler than str_pad( $test, 10, 0, STR_PAD_LEFT)

(This is more of a meta question. I hope it's OK to ask here.)

like image 361
Louis B. Avatar asked Dec 19 '12 17:12

Louis B.


Video Answer


2 Answers

It is easier to make mistakes when typing a string. Using an undefined constant will throw a warning. It's not just a PHP thing. Regular API functions (i.e. of an OS) usually use numeric constants as well for parameters like this.

like image 119
GolezTrol Avatar answered Oct 18 '22 17:10

GolezTrol


They use int .. and it more efficient that way because of Case Sensitivity , Spelling Mistakes , Parsing strings , Better for IDE , Error etc.

If you don't like constant you can just use int value

  str_pad($test, 10, 0, 0) == str_pad( $test, 10, 0, STR_PAD_LEFT)
like image 38
Baba Avatar answered Oct 18 '22 16:10

Baba