求助:关于继承错误的问题
php版本5.4.12
PHP Strict Standards: Declaration of db_attach::needBy() should be compatible with spModel::needBy($id, $value) in C:\php\web\db\db_attach.php on line 25
重写的时候参数不一致,看了网上的方法
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();
这很简单,重写方法的函数签名本应该就和基类函数是一致的,这也是符合自然规律的,因为override本来就是覆盖的意思嘛,既然覆盖了,那么就应该和原函数一致,不然怎么能“盖”的住呢
呵呵,贴的比我写还快
access::needBy($field, $value) 有两个参数
dbconect 继承于 access
dbconect::needBy($id) 只有一个参数,所以出错。原因上面已说
只需
dbconect::needBy($id, $null=null) 加一个可缺省的参数
就可以了
这段写的,我觉得是版本问题
Reproduce code:
---------------
// this code does trigger a strict message
error_reporting( E_ALL | E_STRICT );
class cc extends c {
function test() { return null; }
}
class c {
function test( $a ) { return 1; }
}
$cc = new cc();
?>
// this code does NOT trigger a strict message
error_reporting( E_ALL | E_STRICT );
class c {
function test( $a ) { return 1; }
}
class cc extends c {
function test() { return null; }
}
$cc = new cc();
?>
Expected result:
----------------
None of the code blocks should trigger an error (my personal preference) or both code blocks must trigger a notice.
Actual result:
--------------
First block triggers:
Strict standards: Declaration of cc::test() should be compatible with that of c::test() in strict_test.php on line 4
Second does nothing at all.
缺省的参数的方法不错,测试通过,谢谢版主,学习了,以后还要经常请教,非常感谢!
当然与版本有关啦
php 用的人太多了,所以开发者们有意的制造些障碍
到 php5.5 就可能象 java 一样严厉了
于是就成了解释执行的 java ?? 永远跟在 java 后面吃屎

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



Laravel simplifie la gestion des données de session temporaires à l'aide de ses méthodes de flash intuitives. Ceci est parfait pour afficher de brefs messages, alertes ou notifications dans votre application. Les données ne persistent que pour la demande ultérieure par défaut: $ demande-

L'extension PHP Client URL (CURL) est un outil puissant pour les développeurs, permettant une interaction transparente avec des serveurs distants et des API REST. En tirant parti de Libcurl, une bibliothèque de transfert de fichiers multi-protocol très respectée, PHP Curl facilite Efficient Execu

La journalisation PHP est essentielle pour surveiller et déboguer les applications Web, ainsi que pour capturer des événements critiques, des erreurs et un comportement d'exécution. Il fournit des informations précieuses sur les performances du système, aide à identifier les problèmes et prend en charge le dépannage plus rapide

Laravel fournit une syntaxe de simulation de réponse HTTP concise, simplifiant les tests d'interaction HTTP. Cette approche réduit considérablement la redondance du code tout en rendant votre simulation de test plus intuitive. L'implémentation de base fournit une variété de raccourcis de type de réponse: Utiliser illuminate \ support \ faades \ http; Http :: faux ([[ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Voulez-vous fournir des solutions instantanées en temps réel aux problèmes les plus pressants de vos clients? Le chat en direct vous permet d'avoir des conversations en temps réel avec les clients et de résoudre leurs problèmes instantanément. Il vous permet de fournir un service plus rapide à votre personnalité

L'article traite de la liaison statique tardive (LSB) dans PHP, introduite dans PHP 5.3, permettant une résolution d'exécution de la méthode statique nécessite un héritage plus flexible. Problème main: LSB vs polymorphisme traditionnel; Applications pratiques de LSB et perfo potentiel

L'article examine l'ajout de fonctionnalités personnalisées aux cadres, en se concentrant sur la compréhension de l'architecture, l'identification des points d'extension et les meilleures pratiques pour l'intégration et le débogage.

Alipay Php ...
