| 407 | function _wp_flag($name, $value=NULL) { |
| 408 | // flags are stored in a static associative array |
| 409 | static $_flags = array(); |
| 410 | |
| 411 | if ( !is_scalar($name) or empty($name) ) |
| 412 | return new WP_Error( 'invalid_flag_name', __('Invalid flag name') ); |
| 413 | |
| 414 | $name = strval($name); |
| 415 | |
| 416 | // if a value was specified, change it |
| 417 | if (func_num_args() > 1) { |
| 418 | if ($value === NULL) { // null means unset |
| 419 | unset($_flags[$name]); |
| 420 | return NULL; |
| 421 | } |
| 422 | else |
| 423 | return $_flags[$name] = $value; |
| 424 | } |
| 425 | // otherwise just return the existing value without changing it |
| 426 | return @$_flags[$name]; |
| 427 | } |
| 428 | |
| 429 | function wp_flag_set($name, $value=true) { |
| 430 | return _wp_flag($name, $value); |
| 431 | } |
| 432 | |
| 433 | function wp_flag_get($name, $default=NULL) { |
| 434 | $flag = _wp_flag($name); |
| 435 | if ( $flag === NULL ) |
| 436 | return $default; |
| 437 | else |
| 438 | return $flag; |
| 439 | } |
| 440 | |
| 441 | function wp_flag_unset($name) { |
| 442 | return _wp_flag($name, NULL); |
| 443 | } |
| 444 | |
| 445 | |