#29596 [Opn->Bgs]: Setting or getting declared members won't work when extending mysqli
| From: | georg@php.net | Date: | Wed, 11 Aug 2004 04:37:21 +0000 |
| Subject: | #29596 [Opn->Bgs]: Setting or getting declared members won't work when extending mysqli | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-64390@lists.php.net to get a copy of this message | ||
ID: 29596
Updated by: georg@php.net
Reported By: kinder at wxs dot nl
-Status: Open
+Status: Bogus
Bug Type: Class/Object related
Operating System: Windows XP
PHP Version: 5.0.0
New Comment:
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
You have to override mysqli's default constructor with
function __construct inside your extended class.
See http://www.php.net/manual/en/language.oop5.decon.php
Previous Comments:
------------------------------------------------------------------------
[2004-08-10 09:56:06] kinder at wxs dot nl
Description:
------------
I've posted this problem to the php.db mailinglist, as well as asked in
three different php-related irc-channels, in which no-one could explain
this behaviour. Although I haven't been able to reproduce this problem
on another machine (none available), I suspect it to be a bug.
-----
I'm running php5.0.0 with mysqli extention as a Apache2 module on a
Windows XP box. I've tested the database by querying it with mysqli
(procedural) and results are coming back just fine. This makes me
believe that the mysqli-extention is working properly.
Running this code (see 'reproduce code'), you would expect an output
like "xconstructorytest" however, I'm getting "xy" (the private member
$somevar isn't set and/or read). No reported errors or warnings.
Changing the line that says
class database_foobar extends mysqli
to
class database_foobar
gets me the expected result of "xconstructorytest". Somehow, making the
class an extention of mysqli, seems to interfere with calling the
$somevar member.
Reproduce code:
---------------
error_reporting(E_ALL);
class database_foobar extends mysqli
{
private $somevar;
function database_foobar()
{
$this->somevar = "constructor";
echo "x";
echo $this->somevar;
}
function test()
{
$this->somevar = "test";
echo "y";
echo $this->somevar;
}
}
$foo = new database_foobar();
$foo->test();
Expected result:
----------------
xconstructorytest
Actual result:
--------------
xy
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=29596&edit=1