PHP在它自己的构造函数中创建对象

时间:2013-12-21 20:46:06

标签: php object constructor get

编辑:链接到我的第一个问题。可能会清楚一些事情。 PHP Get corresponding data, with default and error handling

我有一个检查GET语句是否存在的函数。如果是这样,它会将值传递给另一个函数,然后根据GET语句的值选择一个类。

说明: url = Page =联系人
GetFormVariable批准它,并选择类Contact,它将返回一个字符串。该字符串用作对象“内容”,正如它所说,它创建页面的内容。

public function getFormVariable($value){

    switch (strtoupper($_SERVER['REQUEST_METHOD'])) {
        case 'GET':
            if (isset($_GET[$value]) && $_GET[$value] != NULL) {
                return $_GET[$value];
            }
            else{
                return false;
            }
            break;
            case 'POST':
                if (isset($POST[$value]) && $POST[$value] != NULL) {
                return $POST[$value];
            }
            else{
                    return false;
            }
                break;

        default:
            return false;

    }
}

现在的问题。 当url中没有GET语句时。 GetFormVariable返回false。这意味着什么都没有显示出来。

我如何给这个构造函数。

public function SetProperty ($prob, $val){
    $this->$prob = $val;
}

创建ContentHome的信息 SetProperty('Content','ContentHome');

对不起解释不好,如果有什么不清楚请告诉我。

2 个答案:

答案 0 :(得分:1)

我建议我们关闭这个问题,因为不清楚你在问什么,但决定在提供的代码示例上提供一些帮助......

你可以大大减少这种情况,因为没有上下文,函数也可以是static

static public function getFormVariable($value)
{
    if($_SERVER['REQUEST_METHOD'] == 'GET' &&
       isset($_GET[$value])                &&
       !empty($_GET[$value]))
        return $_GET[$value];

    elseif($_SERVER['REQUEST_METHOD'] == 'POST' &&
           isset($POST[$value])                 &&
           !empty($POST[$value]))
        return $POST[$value];

    return false;
}

您的原始isset!= NULL支票正在进行同样的检查。也许您希望empty()支票作为第三张支票,但look it up可以确定。

答案 1 :(得分:0)

问题不明确。

你如何调用getFormVariable?如何将SetProperty与getFormVariable提供的信息一起使用?

据我所知,你的意思是......

$var = getFormVariable(???);

if (false === $var)
{
    SetProperty('Content', 'ContentHome');
} else {
    SetProperty('var', $var);
}