The Documentation Says
从阅读php.net,在我看来,stream_context_set_params几乎做同样的事情作为stream_context_set_option。ie .
http://www.php.net/manual/en/function.stream-context-set-params.phpbool stream_context_set_params ( resource $stream_or_context , array $params )
http://www.php.net/manual/en/function.stream-context-set-option.php bool stream_context_set_option ( resource $stream_or_context , array $options )
stream_context_set_option
支持stream_context_set_params
不支持的额外参数,但除此之外,它们似乎在做同样的事情。至少理论上是这样。
我的测试显示
我自己的测试表明,实际上让我想知道stream_context_set_params
实际上做什么(如果有的话)。
使用stream_context_set_params
…
<?php
$ctx = stream_context_create();
stream_context_set_params($ctx, array('zz' => array('zz' => 'zz')));
print_r(stream_context_get_options($ctx));
打印出以下内容(这让我很惊讶):
Array
(
)
使用stream_context_set_option
…
<?php
$ctx = stream_context_create();
stream_context_set_option($ctx, array('zz' => array('zz' => 'zz')));
print_r(stream_context_get_options($ctx));
输出如下内容(如我所料):
Array
(
[zz] => Array
(
[zz] => zz
)
)
所以我真的不知道。什么好主意吗?
bool stream_context_set_params ( resource $stream_or_context , array $params )
在这一次,它只是采取'通知'参数键,并由stream_notification_callback
使用。
你可以在这里看到支持的上下文参数列表:http://php.net/manual/en/context.params.php
<?php $opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: enrn" .
"Cookie: foo=barrn"
),
);
$context = stream_context_create($opts);
stream_context_set_params($context
, ['notification' => 'your_call_back_notification']
);
var_dump(stream_context_get_params($context));
输出:Array(
[notification] => your_call_back_notification
[options] => Array
(
[http] => Array
(
[method] => GET
[header] => Accept-language: en
Cookie: foo=bar
)
)
)
通知回调可能有警告错误,它必须是一个有效的可调用对象。更多信息请访问http://php.net/manual/en/function.stream-notification-callback.php