stream_context_set_params vs. stream_context_set_option



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.php

bool 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

相关内容

  • 没有找到相关文章

最新更新