0

Fatal error: Call to a member function get() on a non-objectの上

pr($transaction->invoice->get());

奇妙なメッセージが表示されます。私はその方法がそこにあり、使用可能であり、使用する前に再確認することさえできることを確かに知っています。ここで何が問題になっていますか?

pr(get_class_methods($transaction->invoice));
Array
(
    [0] => __construct
    [1] => get
    [2] => __toString
    [3] => getHref
    [4] => setHref
    [5] => _get
)

アップデート:

var_dump(is_object($transaction->invoice));として評価bool(true)

どの方法も機能しません。私は困惑している!これはそれらのエッジケースの1つだと思います。Recurlyライブラリを使用しています。

アップデート

戻ってきたオブジェクトの中には、インスタンス化されていないものがあるようです。それは変だ。PHPがこれを行うことを知りませんでした。

4

1 に答える 1

1

ここで体験するのはマジックです。Magic は理解するのが非常に難しいため、デバッグはさらに困難です。その Recurly PHP ライブラリの大部分が Magic に基づいていることを期待してください。

戻ってきたいくつかのオブジェクトは、それ自体のインスタンス化を解除していたようです。それは変だ。PHPがこれを行うとは知りませんでした。

PHPではなく、ライブラリです。魔法のゲッターとセッター、およびプロパティのその他の魔法のものを利用します。彼らは、魔法が大好きな魔法使いに動かされたに違いありません。まだ魅了されていませんか?

マジックを超える最善の方法は、Xdebugなどのステップ デバッガーを自分でインストールし、ブレークポイントを設定して値を直接調べることです。すべての一般的な PHP IDE はxdebug リモート デバッグをサポートしています (これはリモート デバッグと呼ばれますが、ローカルの開発マシンでも動作します)。

于 2012-06-30T22:34:46.743 に答える