2013-11-02 4 views
-1
$v1['ip'] = $url; 

입니다.PHP - 참조로 전달할 수있는 변수는

왜 다음 작업을 수행하지 않습니까?

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

그러나이 : ​​

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

을이 :

$sock = @stream_socket_client('tcp://'.$url.':'.$port, $errno, $errstr, 1); 

기본 시간 제한은 무엇인가?

+3

오류를 억제하지 마십시오! 불필요하게 어려운 일을 만듭니다. – Ryan

+0

억제? – user2693017

+1

에는'@ '기호가 사용됩니다. 그냥 제거하십시오. –

답변

4

첫 번째 예에서는 원격 소켓을 오류 번호와 연결하므로 $errstr은 실제로 오류 번호이고 1은 오류 문자열입니다. PHP는 1에 할당 할 수 없으므로 호출이 실패합니다.

기본 시간 제한을 찾으려면 stream_socket_client()에 대한 문서를보십시오. 함수 시그니처에서 $timeout 매개 변수는 ini_get("default_socket_timeout")에 의해 반환 된 부동 소수점으로 기본 설정됩니다. 따라서 PHP 구성에서 echo 또는 look을하면 기본 제한 시간이 있습니다.

+0

감사합니다. 그럼 포트 다음에 ","을 어떻게 얻을 수 있습니까? – user2693017

+0

* get *으로 무엇을 의미합니까? 호출은 다음과 같아야합니다 :'stream_socket_client ('tcp : //'. $ v1 [ 'ip']. ': 25565', $ errno, $ errstr);'. –

+0

오, 맞습니다. 점을 제거 할 수 있습니다. 감사합니다. – user2693017

관련 문제