PHP4 to PHP5 migration with E_STRICT
| From: | Tom Robinson | Date: | Wed, 08 Dec 2010 00:02:54 +0000 |
| Subject: | PHP4 to PHP5 migration with E_STRICT | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-309900@lists.php.net to get a copy of this message | ||
Hi,
I'm migrating a web application written for PHP4 to PHP5. I've turned on
E_STRICT to have a detailed look at all the code thoroughly. I have a
number of 'Notices' and 'Strict Standards' messages appearing now.
I don't consider myself a PHP guru by any means so I'm seeking help with
understanding these messages and how to fix the code.
One of the messages is:
"PHP Strict Standards: Only variables should be assigned by reference in"
This is for a class SPControlPanel with a method
function getContentTypes(&$db)
{
$tabledata = array();
$sql = "select
contenttype.*
from
contenttype";
return $db->queryAll($sql, true);
}
The warning is for this segment of code below which is another method in
the same class (marked with comment // this line):
function getCategoryTypes(&$db) {
$tabledata = array();
$myContentTypes = &SPControlPanel::getContentTypes($db); // this
line
foreach ($myContentTypes as $key => $data) {
if ($data['iscategory']) $tabledata[] = $data['contenttype'];
}
return $tabledata;
}
There are many more methods making assignments in a similar way in this
class and in other classes throughout the code.
I'm not sure of the best way to re-code this to resolve the E_STRICT
warning.
Any help is much appreciated.
Regards,
Tom