2013-12-21 142 views
0

编辑:链接到我的第一个问题。可能会清除一些事情。 PHP Get corresponding data, with default and error handlingPHP创建它自己的构造函数内的对象

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

解释: 的URL =页=联系
的GetFormVariable批准它,并选中类联系,它会给后面的字符串。该字符串用作对象“内容”,正如它所说的那样,该内容创建页面的内容。

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');

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

+0

通过使用默认值? – gontrollez

+0

@gontrollez我不确定你的意思? –

+0

有一节[在PHP手册的这个页面](http://www.php.net/manual/en/functions.arguments.php)标题为'Default argument values' –

回答

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是肯定的。

+0

当getFormVariable()返回false时,就像url中没有实际的GET语句一样,它必须加载一个类。这些类通过对象中的其他文件加载/激活。这里是对象$ ConfigPage-> SetProperty('Content','ContentHome');然后在构造和使用对象的getFormVariable()函数的文件中。现在我如何在构造函数本身构造这个内容? –

+0

所有'getFormVariable'都会在$ _GET或$ _POST中寻找值。基于这些信息为某些值实例化一个类应该在'getFormVariable'的外*处理。 – quickshiftin

+1

虽然你的代码不是解决方案,但你确实改进了我自己的代码。因此,我谨以你的回答作为解决方案,因为我放弃了这个问题。非常感谢你! –

0

这个问题还不清楚。

如何调用getFormVariable?如何使用SetProperty和getFormVariable提供的信息?

据我了解,你的意思是这...

$var = getFormVariable(???); 

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