ホームページ  >  記事  >  バックエンド開発  >  ヘルプ: 継承エラーについて

ヘルプ: 継承エラーについて

WBOY
WBOYオリジナル
2016-06-23 14:02:54768ブラウズ

php バージョン 5.4.12
PHP の厳格な標準: db_attach::needBy() の宣言は、C:phpwebdbdb_attach.php の 25 行目の spModel::needBy($id, $value) と互換性がある必要があります

書き換え時のパラメータが一貫していません。インターネットで方法を読んでみました
1. 書き換えた関数のパラメータを初期化します
2. error_reporting を error_reporting(E_ALL & ~(E_STRICT | E_NOTICE)) に設定します (php.ini に追加しました)

このエラーは常にブロックできません。解決策はありますか?ありがとうございます


ディスカッションに返信(解決策)

別の&~E_DEPRECATEDを追加

通常、この種のエラーはブロックされるべきではありません
プロンプトに従い、プログラムをより堅牢にするために修正してください

まだ動作しません、もう一度試してください。書き込みには一貫したパラメータが必要ではありませんか?これはプログラムを変更する必要がありますか?

関連部分のみを投稿してください
何が空なのかは不明です

class access{
public function needBy($field, $value)
{
return $this->find(array ($field=>) ;$value));
}
}

class dbconect extends access
{



function needBy($id)
{
return $this->find(array('id'= >$id) ,'','uid,path');
}

}

ありがとう、助けてください、他に必要なものはいつでも提供します

お待ちください!
テスト済みの

class c { function test( $a ) { return 1; } }  class cc extends c { function test() { return null; } }   $cc = new cc(); 
Strict 標準: cc::test() の宣言は ... の c::test($a) と互換性がある必要があります

これは非常に単純で、オーバーライドされたメソッドの関数シグネチャはベースと同じである必要がありますクラス関数 一貫性があり、これも自然法則に沿っています。オーバーライドは本来上書きを意味するため、元の関数と一貫性があるはずです。そうでない場合、どうやって「カバー」することができますか?

ははは。 post は私が書いたものよりも優れています
access::needBy($field, $value) には 2 つのパラメーターがあります
dbconect は access から継承します
dbconect::needBy($id) には 1 つのパラメーターしかないため、エラーが発生しました。理由は上記の通りです
dbconect::needBy($id, $null=null) にデフォルトパラメータ
を追加するだけです

これはバージョンの問題だと思います

コードを再現します:
------ ---------
72bd06f94f4df9cf1e00431f04348abe

57fd247cc60908ecc9885a412d5cfe57

期待される結果:
----------------
どのコード ブロックもエラーをトリガーしないか、両方のコード ブロックがエラーをトリガーする必要があります。注意してください。

実際の結果:
--------------
最初のブロックトリガー:
厳格な基準: cc::test() の宣言は c::test( の宣言と互換性がある必要があります) ) strict_test.php の 4 行目

2 番目は何も行いません

デフォルトのパラメータメソッドは良いです、テストは合格しました、モデレータに感謝します、私はそれを学びました、そして私は将来もっと頻繁にそれを行います、アドバイスしてください。どうもありがとうございます!

もちろんバージョンによって異なります
php を使用する人が多すぎるため、開発者は意図的にいくつかの障害を作成します
php5.5 では、Java と同じくらい厳密になる可能性があります

つまり、常に Java が解釈されて実行されることになります??フォローする java の後ろでたわごとを食べる

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。