1

PHP 5. 大文字と小文字を区別しない URL クエリを PHP オブジェクトのメンバー変数に変換する必要がある状況にあります。基本的に、url クエリのキーが指すメンバー変数を知る必要があるため、それが数値かどうかを知ることができます。

例えば:

class Foo{
    $Str;
    $Num;
}

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

この URL クエリを処理するとき、「str」が Foo->$Str などに関連付けられていることを知る必要があります。これにアプローチする方法についてのアイデアはありますか? 私は何も思いつきません。

4

1 に答える 1

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 のドキュメントを参照すると役立つ場合があります。

例:

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

次に、$_GET次のようになります。

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

それをループして、プロパティ( )があるかどうか、およびプロパティ$foo( var)があるかどうかを確認します。$foo->varnum$foo->num

于 2013-03-17T03:57:12.347 に答える