有哪些策略可用于为PHP类的私有(private)成员创建访问器和修改器?这个建议好吗:http://cormacscode.wordpress.com/2009/01/22/read-only-object-variables-in-php-using-magic-methods/$varName;}publicfunction__set($varName,$varValue){}}如果某些成员需要私有(private)、公共(public)或protected属性方法怎么办? 最佳答案 首先,__get、__set等被定义为pu
如果我想让EloquentModel类拥有setter和getter来实现接口(interface),那么下面的方法是否有意义,或者是否有解决问题的“laravel”方法classMyClassextendsModelimplementssomeContract{publicfunctionsetFoo($value){parent::__set('foo',$value);return$this;}publicfunctiongetFoo(){returnparent::__get('foo');}} 最佳答案 您可能正在寻找ac
我有一个像下面这样的实体:classitem{/***@varinteger**@ORM\Column(name="id",type="integer")*@ORM\Id*@ORM\GeneratedValue(strategy="AUTO")*/private$id;/***@ORM\Column(type="integer",nullable=true)*/private$errorNum;publicfunctiongetErrorNum(){return$this->errorNUm*3;}在将实体传递给Twig后,我可以像这样访问Twig中的$errorNum属性:{{ite
来自Java,我只有几次假期访问PHP。看看神奇的get和set方法,我的(受Java影响的)肚子开始疼了:看起来你好像是在直接访问属性(当然,当然,你实际上是在使用__get和__set)。所以-除了您必须编写的代码更少之外,使用魔术getter和setter方法而不是传统的getX()/setX()方法有什么优势吗?我应该在编写PHP代码时开始使用它们吗?谢谢,最好! 最佳答案 __get()的唯一好处是可以减少代码,但即便如此也未必如此。例如,如果您有一组10个私有(private)成员,并且您希望getter显示5个,则必须
总结代码示例:ClassPeople{//privateproperty.private$name;//othermethodsnotshownforsimplicity.}直截了当。让我假设$name是一个PRIVATE类成员(或者属性、变量、字段,随便你怎么称呼)。有没有办法在PHP中执行这些操作:$someone=newPeople();$someone->name=$value;$somevar=$someone->name;没有使用__get($name)和__set($name,$value)。背景我需要检查分配的$value,因此我只需要一个像这样的gettersette
我正在用PHP创建一个新类。我预计这门课不会延长。我应该费心将类成员设为私有(private)并实现getter和setter函数吗?我的一部分认为这只是在浪费大量时间,只会增加我的代码量。类(class)是为了简历。我正在用代码编写它来展示我的编码风格。问题是雇主会希望看到getter和setter,还是只会把事情弄得一团糟? 最佳答案 我不想再次重复这样的论点:即使您现在不期望继承,将来您可能仍然需要它,但它们仍然是使用getter和setter的更多理由:Getter和setter可让您轻松实现属性验证您的代码将遵循良好的编码
我有一个具有一对多关联的实体(具有额外字段的多对多):classGame{/**/*@OneToMany(targetEntity="GamePlayer",mappedBy="game",cascade={"persist"})/*@JoinColumn(name="id",referencedColumnName="game_id",onDelete="cascade")*/private$gamePlayer;}该类有所有作者的自动getter:getGamePlayers()我想给它添加一个过滤器,这样它就可以以最有效的方式查询数据库中的相关详细信息:publicfunctio
我正在尝试为php对象实现一些自动getter和setter。我的目标是为每个属性自动拥有方法getProperty()和setProperty(value),如果没有为脚本的属性实现该方法将简单地设置或获取值。一个例子,让我自己清楚:classFoo{public$Bar;}$A=newA();$A->setBar("bar");$A->getBar();//->output"bar"或classFoo{public$Bar;publicfunctionsetBar($bar){$Bar=$bar;}publicfunctiongetBar($bar){return'thevalue
我有一个将用户连接到工作区的数据透视表。在数据透视表上,我还有一个角色列,它定义了该工作区的用户角色。我可以为数据透视表中的角色提供访问器(Getter)和修改器(Setter)方法吗?我一直在努力查看所有内容,但Eloquent中有关数据透视表的详细信息非常少。我不确定是否必须设置自定义枢轴模型?如果我这样做,一个例子会很棒,因为关于枢轴模型的文档非常基础。谢谢。 最佳答案 如果您需要做的只是访问数据透视表上的其他字段,您只需在关系定义上使用withPivot()方法:classUserextendsModel{publicfun
长话短说:我处于一种情况,我想要一个PHP风格的getter,但在JavaScript中。我的JavaScript仅在Firefox中运行,因此我可以使用Mozilla特定的JS。我能找到的制作JSgetter的唯一方法需要指定它的名称,但我想为所有可能的名称定义一个getter。我不确定这是否可行,但我非常想知道。 最佳答案 Proxy可以做到!我很高兴这存在!!这里给出了答案:Isthereajavascriptequivalentofpython's__getattr__method?.用我自己的话说:varx=newProx