在PHP中创建变量

use*_*890 -2 php

嗨我正在尝试创建一个由变量存储的字符串,其值由URL中的值确定.但是,我不确定如何去做.我一直收到错误"意外的T_IF".我能做错什么?

谢谢

PHP:

        $where=  

            if (isset($_GET['name'])) {
                echo "name=" . $name;
            }
            if (isset($_GET['number'])) {
                echo " AND number=" . $number;
            }
            if (isset($_GET['address'])) {
                echo " AND address=" . $address;
            }
            if (isset($_GET['city'])) {
                echo " AND city=" . $city;
            }
            if (isset($_GET['state'])) {
                echo " AND state=" . $state;
            }
            if (isset($_GET['zip'])) {
                echo " AND zip=" . $zip;
            }
            if (isset($_GET['color'])) {
                echo " AND color=" . $color;
            }
        ;
Run Code Online (Sandbox Code Playgroud)

Bra*_*rad 8

我会简化这一点.

$whereElements = array();
foreach ($_GET as $key=>$value) {
    $whereElements[] = $key . '=' . $value;
}
$where = implode(' AND ', $whereElements);
Run Code Online (Sandbox Code Playgroud)

如果您不想要所有变量,则可以始终将白名单/提供要过滤的键数组.此外,如果您在SQL或其他东西中使用它,您应该使用准备好的查询,因为这将是SQL注入的大开放.