我想将空输入/字符串转换为null
,但似乎我无法使其工作。下面是处理$ _POST的类,
class post
{
public $data = array();
public function get($param, $default = null) {
if (!isset($this->data[$param])) {//not set, return default
return $default;
}
else if(isset($this->data[$param]) && $default === ''){//empty string
return null;
}
return $this->data[$param];
}
}
例如,
$post = new post();
$test = $post->get('url','');
var_dump($test);
我明白了,
string '' (length=0)
但我想要null
。有可能吗?
答案 0 :(得分:3)
您可能不需要添加参数:
$test = $post->get('url');
毕竟它的默认值是null
。
否则您可以明确指定它:
$test = $post->get('url', null);
答案 1 :(得分:1)
除了@ konsolebox的答案,您还可以在NULL
方法内以空的方式将空字符串静态转换为get()
:
public function get($param, $default = null) {
if ($default === '') {
$default = null;
}
// ...
这样做的好处是,当你的默认值是动态的(作为变量传入)时,它恰好是一个空字符串,它仍然会产生所需的效果:
$default = '';
$test = $post->get('url', $default); // null