如何动态设置变量php,设计模式

Wil*_*ill 5 php

我有几个PHP脚本具有以下结构:

$count = $_GET['count'];
$sort = $_GET['sort'];
$car = $_GET['car'];
$driver = $_GET['driver'];

...

$SQL = "SELECT car, truck FROM autos WHERE car='$car' AND truck='truck'";

...
Run Code Online (Sandbox Code Playgroud)

另一个脚本将是相同的脚本,而不是汽车,卡车或表autos我将使用另一个表,不同的变量和可能或多或少的变量.有没有一种方法或一个好的设计模式可供使用,这样我只需编写一个这个脚本的实例副本15或左右我可能不得不写.

goa*_*oat 2

当与不太完美的代码结合使用时,这会产生安全隐患,但我认为这对您来说不是问题。

extract($_GET, EXTR_SKIP);
echo $car;
Run Code Online (Sandbox Code Playgroud)

使用提取的好处是您可以指定发生名称冲突时的行为。不过你可以考虑一下EXTR_PREFIX_ALL旗帜。

或者,只需创建一个白名单,这在我看来是最好的。

$allowed = array('car', 'count');
$vars = array_intersect_key($_GET, array_flip($allowed));
extract($vars);
Run Code Online (Sandbox Code Playgroud)