Re: Fatal error: Cannot re-assign $this -- any plans to "fix" this limitation?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Daevid,
Please read this bug report. It explais why you can't do what you want to do. And, I think it will not change


Jasper
Verstuurd vanaf mijn iPad

> Op 14 jan. 2014 om 20:26 heeft "Daevid Vincent" <daevid@xxxxxxxxxx> het volgende geschreven:
> 
> 
> 
>> -----Original Message-----
>> From: Aziz Saleh [mailto:azizsaleh@xxxxxxxxx]
>> Sent: Monday, January 13, 2014 3:18 PM
>> To: Daevid Vincent
>> Cc: php-general@xxxxxxxxxxxxx
>> Subject: Re:  Fatal error: Cannot re-assign $this -- any plans to "fix"
>> this limitation?
>> 
>>> On Mon, Jan 13, 2014 at 5:53 PM, Daevid Vincent <daevid@xxxxxxxxxx> wrote:
>>> 
>>> Are there any plans to fix this "bug" (or add this as a feature depending
>>> on
>>> your POV)
>>> 
>>> I have a connection class that uses singletons for each database. We have
>>> replication on our PROD boxes but on our VMs we don't, so the code does a
>>> little magic to determine if it's an INSERT|UPDATE|DELETE|REPLACE and
>> tries
>>> to change to the proper mysql connection (write to master, read from
>> slaves
>>> in the case of PROD and just use the same DB on the VM).
>>> 
>>> The problem, and it's quite frustrating considering it doesn't make a lot
>>> of
>>> logical sense why you couldn't do it, is that PHP doesn't allow the
>>> re-assignment of $this. :-\
>>> 
>>> Both of these fail (of course)
>>> 
>>> $this = Connection::get_instance(self::_determine_RDBMS($mybase[1],
>> true));
>>> 
>>> $this = self::$_instance_array[$this->_base];
>>> 
>>> It seems that it should be code-wise do-able by simply having the guts of
>>> PHP (the C/C++ code PHP is created with) create a new object - just as it
>>> did when creating $this, then just change the pointer that $this is
>> looking
>>> at to the new object, throw the old object onto the heap for cleanup. Why
>>> is
>>> that so difficult?
>>> 
>>> 
>>> I don't think so. You can always double check here:
>> 
>> https://bugs.php.net/search.php (Type: Feature/Change Request).
>> 
>> As to be able to dynamically change $this (which in PHP is a reference to
>> the calling object), I personally do not think it is a good idea.
>> Particularly if more than one person is working on the file/project - you
>> expect $this to be something, have specific methods, but ends up being a
>> different object.
> 
> I don’t need it to change to an entirely different object class, just a different instance of the same class. I agree that changing $this within itself to something completely foreign would be horrible. But changing to a new/different version of the same thing (same methods, etc.) seems logical and as illustrated useful.
> 
> 
> -- 
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php






[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux