Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-只能通过引用传递变量_Php_Sockets_Variables_Tcp - Fatal编程技术网

PHP-只能通过引用传递变量

PHP-只能通过引用传递变量,php,sockets,variables,tcp,Php,Sockets,Variables,Tcp,为什么下面的方法不起作用 $v1['ip'] = $url; 但这是: $sock = @stream_socket_client('tcp://'.$v1['ip'].':25565'. $errno, $errstr, 1); 这是: $sock = @stream_socket_client('tcp://'.$v1['ip'].':25565'. $errno, $errstr); 默认超时是什么?在第一个示例中,您将远程套接字与错误号连接在一起,因此$errstr实际上是错误号,

为什么下面的方法不起作用

$v1['ip'] = $url;
但这是:

$sock = @stream_socket_client('tcp://'.$v1['ip'].':25565'. $errno, $errstr, 1);
这是:

$sock = @stream_socket_client('tcp://'.$v1['ip'].':25565'. $errno, $errstr);

默认超时是什么?

在第一个示例中,您将远程套接字与错误号连接在一起,因此
$errstr
实际上是错误号,
1
是错误字符串。PHP无法分配给
1
,因此调用失败


要查找默认超时,请查看的文档。在函数签名中,您可以看到
$timeout
参数默认为
ini\u get(“default\u socket\u timeout”)
返回的浮点值,因此您所要做的就是回显该值或查看PHP配置,您就有了默认超时。

请不要抑制错误!它只会让事情变得不必要的困难。使用
@
符号,您将使用什么。把它拿走,你说的“得到”是什么意思?您的调用应该如下所示:
stream\u socket\u client('tcp://'.$v1['ip'.'):25565',$errno,$errstr)
$sock = @stream_socket_client('tcp://'.$url.':'.$port, $errno, $errstr, 1);