これはレビューではないので、これは本当にSOにとっての質問です。しかし、もしあなたがそこでこれを尋ねたとしたら、彼らはこれを反対票を投じたでしょう、あなたの頭はすぐに回転したでしょう。これは十分に文書化されているので、助けを求める前に、これらの種類のものを実際にグーグルで検索する必要があります。その警告だけであなたの質問に答えるのに十分だったでしょう。
ただし、このエラーの理由は、これが変数ではなくクラスメソッドであるためです。そして、静的なものを起動します。警告やエラーを常に聞く必要があるその厳格な警告は、参照するものが何もないことを示しています。参照は、行った変更を自動的に複製$db
し、参照している変数に適用して、効果的に複製します。だから今、あなたは問題を見始めます。私が言ったように、あなたは変数を参照していません。あなたは単にメモリのセクションであり、参照することができないメソッドの戻り値を参照しています。
だから、あなたはこれを行うことができます:
$temp = JFactory::getDBO();
$db =& $temp;
そして、それはうまくいくでしょう。ただし、これは完全に不要です。ここでは参照は完全に不要です。本当にやりたいのは、そのメソッドの戻り値を変数に設定し、それをコードの残りの部分で使用することです。通常、特にプログラミングを始めたばかりの人にとっては、参照は必要ありません。前の変数を新しい変数に割り当て、変更を加えてから、新しい変数を古い変数に再割り当てすることで、同じことを実現できます。もう少し学び、理解が深まるまで、参照はそのままにしておきます。何年にもわたるプログラミングの後でも、私はめったにそれを使用しません。