上記より。
原因1
インスタンス作成以前に、メンバー関数を呼び出した
原因2
メンバー関数を呼び出す際のオブジェクト名が、作成したインスタンス名と異なる
PHP: ArrayObject::append - Manualより、
<?php $arrayobj = new ArrayObject(array('first','second','third')); $arrayobj->append('fourth'); $arrayobj->append(array('five', 'six')); var_dump($arrayobj); ?>
これは通るけど、
<?php $arrayobj = array('first','second','third'); $arrayobj->append('fourth'); $arrayobj->append(array('five', 'six')); var_dump($arrayobj); ?>
インスタンスを作成していないからこれはエラーになり、また
<?php $arrayobj = new ArrayObject(array('first','second','third')); $arrayobj1->append('fourth'); $arrayobj1->append(array('five', 'six')); var_dump($arrayobj1); ?>
こんなのも勿論エラーになる。
つまり、インスタンスが必要な関数を呼び出すときはインスタンスを生成しないといけないし、
インスタンスを生成した変数を利用して関数を呼び出さなければならない。