1 | <?php |
||
14 | class Helper |
||
15 | { |
||
16 | /** |
||
17 | * Convert string to camelCase. Strings already in camelCase will not be affected. |
||
18 | * @param string $str Input string |
||
19 | * @return string camelCased output string |
||
20 | */ |
||
21 | 18 | public static function camelCase($str) |
|
32 | |||
33 | /** |
||
34 | * Initialize an object with given array of parameters |
||
35 | * |
||
36 | * @param mixed $target The object to set parameters on |
||
37 | * @param array $parameters An array of parametes to set |
||
38 | */ |
||
39 | 57 | public static function initialize($target, $parameters) |
|
40 | { |
||
41 | 57 | if (is_array($parameters)) { |
|
42 | 51 | foreach ($parameters as $key => $value) { |
|
43 | 9 | $method = 'set'.ucfirst(static::camelCase($key)); |
|
44 | 9 | if (method_exists($target, $method)) { |
|
45 | 9 | $target->$method($value); |
|
46 | 6 | } |
|
47 | 34 | } |
|
48 | 34 | } |
|
49 | 57 | } |
|
50 | |||
51 | /** |
||
52 | * Convert strings with underscore to be all lowercase before camelCase is performed. |
||
53 | * @param string $str Input string |
||
54 | * @return string Output string |
||
55 | */ |
||
56 | 18 | protected static function convertToLowercase($str) |
|
69 | } |
||
70 |
Adding an explicit array definition is generally preferable to implicit array definition as it guarantees a stable state of the code.
Let’s take a look at an example:
As you can see in this example, the array
$myArray
is initialized the first time when the foreach loop is entered. You can also see that the value of thebar
key is only written conditionally; thus, its value might result from a previous iteration.This might or might not be intended. To make your intention clear, your code more readible and to avoid accidental bugs, we recommend to add an explicit initialization $myArray = array() either outside or inside the foreach loop.