草庐IT

继承权

全部标签

php - 为什么 Eloquent\Builder 在 laravel 中不继承 Query\Builder?

在laravel中,Eloquent\Builder类将对它不需要的方法的每次调用发送到内部Query\Builder.对我来说,这听起来像是继承。有人知道为什么他们没有实现它以便Eloquent\Builder扩展Query\Builder吗?我第一次注意到它的原因是我在IDE中遇到了“调用未定义的方法”错误,尽管代码工作正常,我想这是魔术方法的诅咒。作为引用,这里是来自Eloquent\Builder的相关资源。/***Thebasequerybuilderinstance.**@var\Illuminate\Database\Query\Builder*/protected$qu

php - 魔术功能和继承

我想知道是否可以创建一个扩展另一个魔法对象的魔法对象(使用PHP)。 最佳答案 我不太确定你在问什么……你想显式调用父类的魔术方法吗?如果是这样,您可以使用该类的parent引用:classObjectextendsdbObj{//...//thisiswhati'massumingyou'relookingfor:publicfunction__call($method,$variables){returnparent::__call($method,$variables);}} 关于

php - 另一个继承问题

来自Google的快速搜索和关于多重继承的维基百科文章,其中引用:Multipleinheritancereferstoafeatureofsomeobject-orientedprogramminglanguagesinwhichaclasscaninheritbehaviorsandfeaturesfrommorethanonesuperclass.Thiscontrastswithsingleinheritance,whereaclassmayinheritfromatmostonesuperclass.我知道PHP不允许多重继承。然而,我找不到明确的答案是它是否允许多个类扩展一

php - FPDF拒绝通过继承合作

下面有两个代码示例。一个有效,但第二个(使用extend创建新的类包装器)无效。请注意,我已经大大简化了以下示例。方法#1page.php:AddPage();$pdf->SetFont('Arial','',11);$pdf->Output();?>这按预期工作。它会创建一个空白页面。方法#2但是,通过继承使用FPDF,我得到一个错误(见下面的代码块)。myPDF.php:AddPage();$this->SetFont('Arial','',11);$this->Output();}}?>page.php:createMyPage();?>第二种方法会产生以下PHP警告和FPDF错

php - DocBlock类类型继承

虽然这个问题是关于DocBlocks的一般来说,我的用例是关于PHP的。考虑以下PHP代码:say_hi()->say_b|这只是一个带有一些链接的普通类。扩展类失去了类型提示,因为父类的文档block正在使用不具有子类的方法/属性的特定类名。假设我们确实需要类型提示功能,(如果不需要,请留下这个问题-我不想在这里使用无用的参数),我应该如何解决这个问题?我想到了以下可能性:更改PHPDoc标准以允许使用特殊关键字添加一个多余的say_hi()方法,该方法调用父级只是为了重新声明docblock根本不指定返回类型,让IDE决定return$this;的含义(这是否有效?)

php - 数组的静态继承

我很难解释我正在尝试做什么,所以我只提供一个例子classA{static$data=['a'];staticfunctiongetData(){returnstatic::$data;}}classBextendsA{static$data=['b'];}classCextendsB{static$data=['c'];}classDextendsB{static$data=['d'];}$a=newA;$b=newB;$c=newC;$d=newD;$a::getData();//Output:Array('a'),Expected:Array('a');$b::getData()

php - Sonata-admin 无法修改具有继承的类

我正在使用Symfony2并且我有一个类层次结构。层次结构非常简单,我有一个问题(父问题)和许多不同的子问题。使用奏鸣曲,我希望能够创建不同类型的问题,即子问题。为此,我创建了一个类层次结构,如下所示:Hippy\ScavengerHuntBundle\Entity\Question:type:entitytable:nullinheritanceType:JOINEDdiscriminatorColumn:name:subClasstype:stringdiscriminatorMap:blurredMultipleChoiceQuestion:BlurredMultipleChoi

php - PHP 5.3 之前的静态继承

classA{static$v="A";staticfunctionechoExtendedStaticVariable(){echoself::$v;}}classBextendsA{static$v="B";//overrideA'svariablewith"B"}为什么:echoB::$v打印“A”?我如何让它打印“B”?在PHP5.3之前有办法做到这一点吗? 最佳答案 B->echoExtendedStaticVariable()=='A'因为self::是在编译时计算的,而不是运行时.这就好像你写的是A::而不是self:

java - 深度嵌套继承——好的还是坏的做法?

我正在制作一个PHP网络应用程序。我有一种情况,我相信会促进嵌套继承的好时机。无论如何,这是我的情况:publicclassRecurringWeeklyEventextendsRecurringEvent{}publicclassRecurringEventextendsEvent{}在我看来,这并不是一个糟糕的设计实践;但是,无论如何,我都不是高级的面向对象的程序员。话虽如此,在我冒险在我的应用程序中使用这种代码之前,我想知道这对更有经验/合格的程序员来说是好的还是坏的做法。注意:在更正使用错误术语后,我将标题从多重继承更改为嵌套继承。谢谢史蒂夫 最佳答

php - 在php继承中执行__constructor()

在php中,如果A扩展B,B的_constrctor()会在A实例化时自动执行吗?还是我必须调用parent->_constructor()? 最佳答案 PHP寻找它能找到的最顶层(最接近实例化类)__construct方法。然后它只执行那个。ClassA{publicfunction__construct(){echo"FromA";}}ClassBextendsA{publicfunction__construct(){echo"FromB";}}ClassCextendsA{}ClassDextendsB{}ClassEext