Bug #53135 [Opn->Bgs]: I have PHP >5 and have a call-time pass-by-reference problem
| From: | aharvey@php.net | Date: | Fri, 22 Oct 2010 08:32:45 +0000 |
| Subject: | Bug #53135 [Opn->Bgs]: I have PHP >5 and have a call-time pass-by-reference problem | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-155443@lists.php.net to get a copy of this message | ||
Edit report at http://bugs.php.net/bug.php?id=53135&edit=1
ID: 53135
Updated by: aharvey@php.net
Reported by: josh dot richard at gmail dot com
Summary: I have PHP >5 and have a call-time pass-by-reference
problem
-Status: Open
+Status: Bogus
Type: Bug
Package: Sockets related
Operating System: CentOS 5.5
PHP Version: Irrelevant
Block user comment: N
New Comment:
You shouldn't specify &$errno and &$errstr with the & operator;
simply providing $errno and $errstr will work fine.
Further explanation: http://php.net/language.references.pass
Not a bug; closing.
Previous Comments:
------------------------------------------------------------------------
[2010-10-22 10:23:10] josh dot richard at gmail dot com
Description:
------------
I'm trying to use fsocketopen() to test a server connection- to see if
it's online or offline.
Even the manual says I can call it like this:
$connection = fsockopen("www.example.com", 80, $errno, $errstr, 30);
However, I get this warning message when doing so:
PHP Warning: Call-time pass-by-reference has been deprecated - argument
passed by value; If you would like to pass it by reference, modify the
declaration of fsockopen(). If you would like to enable call-time
pass-by-reference, you can set allow_call_time_pass_reference to true in
your INI file. However, future versions may not support this any
longer.
Is there another way to declare fsocketopen()??? I see nothing about
this!!
Test script:
---------------
<?
// This value is either example.com OR example.com:port
$serverAddress = $_POST[server];
@list($addr,$port)= explode (':', $serverAddress);
if (empty($port)) {
$port = 80;
}
// Test the server connection
$connection = @fsockopen($addr, $port, &$errno, &$errstr, 30);
if (!$connection) {
echo $addr . ":" . $port . " is currently DOWN";
} else {
echo $addr . ":" . $port . " is currently UP";
}
?>
Expected result:
----------------
Not expecting any warning!!
Actual result:
--------------
Where does this warning come from? I've called fsocketopen() like this
for years!!
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=53135&edit=1