PHP引用变量不区分大小写的字符串

时间:2013-03-17 03:52:11

标签: php

PHP 5.我遇到需要将不区分大小写的url查询转换为PHP对象中的成员变量的情况。基本上,我需要知道url查询键指向哪个成员变量,以便我知道它是否为数字。

例如:

class Foo{
    $Str;
    $Num;
}

myurl.com/stuff?$var=value&num=1

处理此URL查询时,我需要知道“str”与Foo-> $ Str等相关联。有关如何处理此问题的任何想法?我无法想出任何东西。

1 个答案:

答案 0 :(得分:1)

尝试这样的事情。

function fooHasProperty($foo, $name) {
  $name = strtolower($name);
  foreach ($foo as $prop => $val) {
    if (strtolower($prop) == $name) {
      return $prop;
    }
  }
  return FALSE;
}

$foo = new Foo;

// Loop through all of the variables passed via the URL
foreach ($_GET as $index => $value) {
  // Check if the object has a property matching the name of the variable passed in the URL
  $prop = fooHasProperty($foo, $index);
  // Object property exists already
  if ($prop !== FALSE) {
    $foo->{$prop} = $value;
  }
}

Classes and Objects上查看php的文档可能会有所帮助。

示例:

网址:myurl.com/stuff?var=value&num=1

然后$_GET看起来像这样:

array('var' => 'value', 'num' => '1')

循环使用,我们将检查$foo是否有属性var,($foo->var)以及是否有属性num$foo->num )。