while we're at it (PHP-5.1 & instanceof)

php.internals

Michael Wallner

21 years ago
I already complained about that issue several times on IRC and now that it's time for PHP-5.1 to come, I'll just throw this question/rant in... Using is_a() throws a notice (E_STRICT IIRC) in PHP5, which should be fine, because it was deprecated in favour of the instanceof operator. But there's quite an ugly problem with the instnceof operator - it needs the class to be checked already loaded, while is_a() didn't -- *and* instanceof let the script _die_ if there's no such class. To replace is_a($obj, 'ClassName') calls one would need to write class_exists('ClassName') && ($obj instanceof ClassName) The point is, that I don't see the point why is_a() has been deprecated (and replaced) by an operator that doesn't provide the same functionality and can even be harmful (with fatal errors). Regards, Mike

Andi Gutmans

21 years ago
Will look into it. At 11:15 PM 6/15/2005 +0200, Michael Wallner wrote:

Alan Knowles

21 years ago
http://www.akbkhome.com/blog.php/View/75/removing+that+stupid+is_a +warning..html You're not the only one ;) Regards Alan On Wed, 2005-06-15 at 23:15 +0200, Michael Wallner wrote:

Andi Gutmans

21 years ago
Seems to work... At 11:15 PM 6/15/2005 +0200, Michael Wallner wrote:

Michael Wallner

21 years ago
Hi Andi Gutmans, you wrote:
> Seems to work...
Sorry, what seems to work what way? Thanks,
-- Michael - < mike(@)php.net >

Andi Gutmans

21 years ago
instanceof calls __autoload() At 04:02 PM 6/16/2005 +0200, Michael Wallner wrote:

Michael Wallner

21 years ago
Hi Andi Gutmans, you wrote:
> instanceof calls __autoload()
Well, what for I wonder? If the class is not defined, no object can be an instance of it... Regards,
-- Michael - < mike(@)php.net >

Andi Gutmans

21 years ago
Because it's a generic way of fetching classes and there's no reason to change it. If there's a real problem then email me. Andi At 04:55 PM 6/16/2005 +0200, Michael Wallner wrote:

Wez Furlong

21 years ago
It seems a bit over-zealous to throw a fatal error when you're writing code to avoid a fatal error. If autoload fails, instanceof should simply return false. --Wez. On 6/16/05, Andi Gutmans <andi@zend.com> wrote: