#50872 [Opn->Csd]: inaccurate example in pass-by-reference docs
| From: | salathe@php.net | Date: | Fri, 29 Jan 2010 09:01:49 +0000 |
| Subject: | #50872 [Opn->Csd]: inaccurate example in pass-by-reference docs | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-3801@lists.php.net to get a copy of this message | ||
ID: 50872
Updated by: salathe@php.net
Reported By: neilyalowitz at gmail dot com
-Status: Open
+Status: Closed
Bug Type: Documentation problem
PHP Version: Irrelevant
New Comment:
This bug has been fixed in the documentation's XML sources. Since the
online and downloadable versions of the documentation need some time
to get updated, we would like to ask you to be a bit patient.
Thank you for the report, and for helping us make our documentation
better.
I have added the function foo() to the two snippets which did not have
it. Thanks again for your input.
Previous Comments:
------------------------------------------------------------------------
[2010-01-29 08:57:43] svn@php.net
Automatic comment from SVN on behalf of salathe
Revision: http://svn.php.net/viewvc/?view=revision&revision=294184
Log: Added function foo to make references examples standalone. Fixes
#50872
------------------------------------------------------------------------
[2010-01-28 21:00:20] neilyalowitz at gmail dot com
Ok, now I understand.
I would recommend just pasting function foo() as defined above in the
example given further down the page. Then the code block could be run
as-is, readers could observe the error themselves, and there is no
ambiguity:
<?php
function foo(&$var)
{
$var++;
}
function bar() // Note the missing &
{
$a = 5;
return $a;
}
foo(bar()); // Produces fatal error since PHP 5.0.5
foo($a = 5); // Expression, not variable
foo(5); // Produces fatal error
?>
------------------------------------------------------------------------
[2010-01-28 12:56:10] salathe@php.net
Please see the function foo() as defined at the top of the page. At
least two people have been confused by that example so it will probably
make sense to tidy the page up a bit.
------------------------------------------------------------------------
[2010-01-28 10:21:16] neilyalowitz at gmail dot com
URL to page I'm referring to:
http://www.php.net/manual/en/language.references.pass.php
------------------------------------------------------------------------
[2010-01-28 10:19:48] neilyalowitz at gmail dot com
Description:
------------
There must be a mistake in the documentation regarding the "Produces
fatal error" documented case. Docs need to be fixed, it doesn't produce
a fatal error, the code block runs fine.
Reproduce code:
---------------
---
From manual page: language.references.pass
---
<?php
function bar() // Note the missing &
{
$a = 5;
return $a;
}
//begin-- I added this so the block will run
function foo($a) {
print $a;
}
//end
foo(bar()); // Produces fatal error since PHP 5.0.5 //no, it doesn't
?>
Expected result:
----------------
Docs say it should produce a fatal error.
Actual result:
--------------
Code block runs fine. No error.
Mistake in the docs.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=50872&edit=1