PHP:如何将空字符串转换为null

时间:2013-09-14 18:31:48

标签: php null getter getter-setter

我想将空输入/字符串转换为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。有可能吗?

2 个答案:

答案 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