<?
class EditResultGenerator extends MethodGeneratorForActionPerformer {
/**
* Create an instance of itself if $this does not yet exist as an EditResultGenerator class object
*
* @access private
* @see is_class
*/
function &generateSelf() { // STATIC VOID METHOD
if (!is_object($this) || @!is_class($this, 'EditResultGenerator')) {
$this->self =& new EditResultGenerator();
} else {
$this->self =& $this;
}
}
}
?>
This self-generating function serves a purpose to ensure that if part of the application does this:
<?
EditResultGenerator::getResult();
?>
That it will work exactly the same as if I did this:
<?
$edit =& new EditResultGenerator();
$result = $edit->getResult();
?>
However, I cannot change hundreds of lines of code from the former to the latter just to ensure instantiation is uniform, so I'm stuck with the fact that I have to generate a $this->self EditResultGenerator class object if $this does not exist, otherwise, $this->self must be absolutely identical to $this, in fact, be a reference!
This works beautifully in PHP 4.3+, but bombs in PHP 5.2.
How can I get it to work in PHP 5.2+?
Phil