0

我有 PHP 数组:

$curl_options = array(
    CURLOPT_PORT => 80,
    CURLOPT_CONNECTTIMEOUT => 10,
    CURLOPT_TIMEOUT => 30
);

然后我添加新元素并更改一些值:

$curl_options[CURLOPT_USERAGENT] = "Opera/9.02 (Windows NT 5.1; U; en)";

$curl_options[CURLOPT_PORT] = 90;

在此更改后数组变为

$curl_options = array(
    CURLOPT_PORT => 90,
    CURLOPT_CONNECTTIMEOUT => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_USERAGENT => Opera/9.02 (Windows NT 5.1; U; en)
);

如何将数组重置为默认值?到

$curl_options = array(
    CURLOPT_PORT => 80,
    CURLOPT_CONNECTTIMEOUT => 10,
    CURLOPT_TIMEOUT => 30
);

谢谢。

4

4 回答 4

2

您需要制作数组的副本:

$curl_options = array(
CURLOPT_PORT => 80,
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_TIMEOUT => 30);

$copy = $curl_options;

$curl_options[CURLOPT_USERAGENT] = "Opera/9.02 (Windows NT 5.1; U; en)";
$curl_options[CURLOPT_PORT] = 90;

// Reset
$curl_options = $copy;
于 2012-05-12T15:27:07.767 回答
2

这样做的唯一方法是用原始数组覆盖数组,所以只需再次运行它:

$curl_options = array(
CURLOPT_PORT => 80,
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_TIMEOUT => 30);

PHP 不存储任何修订数据或类似的东西,因此您不能反转数组更改。

于 2012-05-12T15:27:18.870 回答
2

“真正”的方式是创建一个返回所需数组的函数 getDefaultOptions。

于 2012-05-12T15:29:43.510 回答
0

制作 2 个单独的数组 - 1) 默认 2) 扩展。

$curl_options_default = array(
    CURLOPT_PORT => 80,
    CURLOPT_CONNECTTIMEOUT => 10,
    CURLOPT_TIMEOUT => 30
);

$curl_options[CURLOPT_USERAGENT] = "Opera/9.02 (Windows NT 5.1; U; en)";
$curl_options[CURLOPT_PORT] = 90;

$curl_options_new = array_replace($curl_options_default, $curl_options);

现在您有 2 个数组:未触及$curl_options_default的和新的(带有扩展/替换元素)$curl_options_new

于 2012-05-12T16:23:51.217 回答