mirror of
https://github.com/jupeter/clean-code-php.git
synced 2025-10-01 16:36:42 +02:00
Merge pull request #26 from peter-gribanov/default_arguments
[Bugfix] Use default arguments in PHP 7+
This commit is contained in:
34
README.md
34
README.md
@@ -186,22 +186,40 @@ class Car
|
||||
|
||||
### Use default arguments instead of short circuiting or conditionals
|
||||
|
||||
**Bad:**
|
||||
**Not good:**
|
||||
|
||||
This is not good because `$breweryName` can be `NULL`.
|
||||
|
||||
```php
|
||||
function createMicrobrewery($name = null) {
|
||||
$breweryName = $name ?: 'Hipster Brew Co.';
|
||||
function createMicrobrewery($breweryName = 'Hipster Brew Co.')
|
||||
{
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
**Not bad:**
|
||||
|
||||
This opinion is more understandable than the previous version, but it better controls the value of the variable.
|
||||
|
||||
```php
|
||||
function createMicrobrewery($name = null)
|
||||
{
|
||||
$breweryName = $name ?: 'Hipster Brew Co.';
|
||||
// ...
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
**Good**:
|
||||
```php
|
||||
function createMicrobrewery($breweryName = 'Hipster Brew Co.') {
|
||||
// ...
|
||||
}
|
||||
|
||||
If you support only PHP 7+, then you can use [type hinting](http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration) and be sure that the `$breweryName` will not be `NULL`.
|
||||
|
||||
```php
|
||||
function createMicrobrewery(string $breweryName = 'Hipster Brew Co.')
|
||||
{
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
**[⬆ back to top](#table-of-contents)**
|
||||
## **Functions**
|
||||
### Function arguments (2 or fewer ideally)
|
||||
|
Reference in New Issue
Block a user