- var_dump: documentation ( source)
- trim: documentation ( source)
- preg_replace: documentation ( source)
<?php
class LazyLoadedMethods {
protected $_data = array();
protected static $_instance;
protected static function set($key, $value){
static::$_instance->_data[$key] = $value;
return static::$_instance;
}
protected static function get($key){
if(array_key_exists($key, static::$_instance->_data)){
return static::$_instance->_data[$key];
}
return null;
}
public static function getInstance() {
if (!isset(static::$_instance)) {
static::$_instance = new static;
}
return static::$_instance;
}
protected static function getFunction($name, $callback){
$ins = static::getInstance();
if(is_null(static::get($name))){
static::set($name, $callback);
}
return static::get($name);
}
public static function toBool($v) {
$fn = static::getFunction(__FUNCTION__, function($value) { return $value == 1 || $value == true; });
return $fn($v);
}
public static function parseNewLines($v) {
$fn = static::getFunction($v, function($value) { return trim(preg_replace('/\s\s+/', ' ', $string)); });
return $fn($v);
}
}
var_dump(LazyLoadedMethods::toBool(-1));