継承例外に関する質問

WBOY
リリース: 2016-06-13 12:51:58
オリジナル
895 人が閲覧しました

ヘルプ: 継承エラーについて
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 に追加しました)

このエラーは常に抑制できるわけではありません。解決策はありますか?ありがとう

php
-----解決策---------
もう待つ必要はありません。
テストしました
class c { function test( $a ) { return 1; } }  <br />
class cc extends c { function test() { return null; } }   <br />
$cc = new cc(); 
ログイン後にコピー
厳格な基準: cc::test() の宣言は ...
の c::test($a) と互換性がある必要があります
これは非常に単純です。オーバーライドされるメソッドの関数シグネチャは基本クラスの関数と一致する必要があります。オーバーライドは本来上書きを意味するため、元のクラスの関数と一致する必要があります。関数、そうでない場合はどうすれば「カバー」できますか?
-----解決策-------------------------- ------
はは、書いたより早く投稿しました

access::needBy($field, $value) には 2 つのパラメータがあります
dbconect はアクセス
から継承します dbconect::needBy($id) にはパラメーターが 1 つしかないため、エラーが発生します。理由は上記の通りです
ただ
dbconect::needBy($id, $null=null) デフォルトパラメータを追加します
以上です
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート