Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

Stuart Herbert's Blog:
Should is_array() Accept ArrayObject?
Jul 20, 2010 @ 10:08:09

In a quick blog post today Stuart Herbert asks the community at large a question - should is_array accept an ArrayObject?

Here’s a quick question for the wider PHP programming community … if you’re writing code that tests for the presence of an array, should is_array() also accept objects that behave like arrays?

Some quick code snippets show that, currently in PHP 5.2, an is_array test will return false. If you use an instanceof to check it, however, you can get it to return true. There's plenty of comments on the subject with quite a few "no"s in the group.

tagged: arrayobject isarray question instanceof

Link:

Brandon Savage's Blog:
Where Multiple Inheritance Will Kill You
Jul 17, 2009 @ 11:19:02

In this new post to his blog Brandon Savage takes a look at multiple inheritance in PHP applications - specifically where it could "kill you" if you're not careful.

This is a fantastic way to further encapsulate and abstract your code because it means you can define some base functionality and then later on extend that class to add new functionality and even override existing functionality to make the class specific. But this concept is a double-edged sword in PHP (and all other languages).

The problem lies in methods in classes that could be overriding parents and the sort of results that instance of might return in a multiple inheritance environment. He includes code snippets both illustrating the problem and showing a suggestion for how it could be avoided.

tagged: problem instanceof inheritance multiple

Link:

David Otton's Blog:
PHP Tip: Classes Aren’t Derived From stdClass
Nov 16, 2008 @ 10:54:53

David Otton has shared a discovery he's come across in his development - user-defined classes are not derived from stdClass.

Many OO languages have the concept of a single base class from which all other classes are explicitly or implicitly descended. For example, Ruby, Java and .NET all have Object. It's a very common belief that PHP implements stdClass as a base class for all objects, but this is in fact not the case.

He illustrates with a code example showing the results of calls to instanceof with a normal user class and one that extends the stdClass object.

tagged: class stdclass standard example instanceof

Link:

PHP 10.0 Blog:
duck operator
Jun 05, 2008 @ 14:36:31

In this new post to the PHP 10.0 blog today, Stas talks about duck typing, a method that lets the code decide the functionality to use rather than a direct relation to a parent.

Well, if you are into duck typing style of programming, it may be interesting for you to have an object that implements certain set of functions, but not necessary declares it at class definition. Languages like Smalltalk do it all day along, so why PHP couldn't?

His example defines an interface Cow and a class MooingGrassEater and a function, CowConsumer, that does the work. A classname is passed in and an instance of that class is checked with "implements" rather than "instanceof" to see if it uses the Cow interface. He points out a place where PHP itself uses something similar in user defined streams.

tagged: duck operator instanceof implements class interface relation

Link:

DevShed:
Enforcing Object Types in PHP - Using the PHP5 instanceof Operator
Feb 23, 2006 @ 07:01:43

DevShed is continuing their "Enforcing Object Types in PHP" series with this new tutorial today. This time, they're focusing mor eon the use of the instanceof operator in PHP5.

This three-part series goes through the basic concepts of object type enforcement in PHP 4/PHP 5. It explores different approaches for checking types of objects to help you avoid possible code contamination when objects of incorrect type are inputted within PHP classes.

The end result of this article hopefully will help you to expand your grounding in how to implement object type enforcement in PHP 5, by developing some illustrative, object-oriented examples.

They start with a look at how not to do the object checking but provide a solution to the situation with the help of the instanceof operator. They explain its usage in the context of the widget class they've created, and show you how it can be integrated easily to simplify object validation.

tagged: enforce object types php5 instanceof validation input enforce object types php5 instanceof validation input

Link:

DevShed:
Enforcing Object Types in PHP - Using the PHP5 instanceof Operator
Feb 23, 2006 @ 07:01:43

DevShed is continuing their "Enforcing Object Types in PHP" series with this new tutorial today. This time, they're focusing mor eon the use of the instanceof operator in PHP5.

This three-part series goes through the basic concepts of object type enforcement in PHP 4/PHP 5. It explores different approaches for checking types of objects to help you avoid possible code contamination when objects of incorrect type are inputted within PHP classes.

The end result of this article hopefully will help you to expand your grounding in how to implement object type enforcement in PHP 5, by developing some illustrative, object-oriented examples.

They start with a look at how not to do the object checking but provide a solution to the situation with the help of the instanceof operator. They explain its usage in the context of the widget class they've created, and show you how it can be integrated easily to simplify object validation.

tagged: enforce object types php5 instanceof validation input enforce object types php5 instanceof validation input

Link: