PHP set_defaults()

Set the default values for an array parameter in a function

Language: PHP

  1. <?php
  2.  
  3. function set_defaults($default, $custom=[]) {
  4. $array = [];
  5. foreach ($default as $key => $value) {
  6. if (is_array($value)) {
  7. $array[$key] = set_defaults($value, array_key_exists($key, $custom) ? $custom[$key] : []);
  8. }
  9. elseif (is_string($value) || is_bool($value)) {
  10. $array[$key] = array_key_exists($key, $custom) ? $custom[$key] : $value;
  11. }
  12. }
  13. return $array;
  14. }
  15.  
  16. // USAGE: -----------------------
  17.  
  18. function my_function($args) {
  19. // set the default value for $args['key1']
  20. $args = set_defaults([
  21. 'key1' => 'test',
  22. ], $args);
  23.  
  24. // return $args['key1'] here
  25. return $args['key1'];
  26. }
  27.  
  28. // Because we set our own value for ['key1'], 'Hullo World!' will appear, instead of 'test'
  29. echo my_function([
  30. 'key1' => 'Hullo World!',
  31. ]);
  32. ?>