草庐IT

弱引用

全部标签

php - 在 PHPUnit 中模拟时在回调中通过引用传递

我有一个我想模拟的接口(interface),并模拟其中一个方法的行为。所以我创建了一个非常简单地模拟行为的回调。如果我创建一个基于此接口(interface)的新对象,则此测试通过,但我想模拟该接口(interface)。模拟的setUp方法被正常调用,并且在我的回调中调用getVar('testing')返回值。但是我的断言失败了,因为该值不可用。在PHPUnit中似乎不能这样做?除非我是傻子。代码流程的简要说明;“getVar”中的代码调用了一个方法,该方法在添加的插件上调用“setUp”。当它调用“setUp”时,它传入“$this”。这是我期望通过引用传递的$this,它适用

php - 如何在递归正则表达式中进行反向引用匹配?

我有这样一个字符串:$data='id=1username=foobarcomment=Thisisasamplecomment';我想删除第三个字段中的\n(comment=...)。我有这个正则表达式可以满足我的目的但不是很好:preg_replace('/\bcomment=((.+)\n*)*$/',"comment=$2",$data);我的问题是第二组中的每个匹配项都会覆盖前一个匹配项。因此,而不是有这个:'...comment=Thisisasamplecomment'我最终得到了这个:'...comment=comment'有什么方法可以将中间反向引用存储在正则表达式中

php - 函数中的可变长度引用参数列表

在PHP中你可以这样做:functionsomething(){foreach(func_get_args()as$arg)echo$arg;}something(1,3);//echoes"13"这对于按值传递的参数来说效果很好,但是如果我希望它们按引用传递怎么办?像这样:functionsomething_else(){foreach(func_get_args()as$arg)$arg*=2;}$a=1;$b=3;something_else($a,$b);echo$a.$b;//shouldecho"26",butreturns"13"whenItryit这在PHP中可行吗?

php - 如何获取(通过引用)数组的长度

我从mysql结果中循环遍历数千行,并将它们添加到不同的数组中。我得到了对数组中要操作的最后一个元素的引用(出于本问题范围之外的原因)。即(只是场景的一个例子)$myarray=array();$result=&$myarray;$row=&$result[count($result)-1]当然这行得通,但正如该线程(Whyiscallingafunction(suchasstrlen,countetc)onareferencedvaluesoslow?)所解释的那样,调用一个不期望通过引用引用变量的函数,通过引用引用变量,会导致函数复制要操作的变量。随着我的$result数组增长到数

PHP:preg_replace 使用反向引用替换缩写

我想在PHP中使用preg_replace对以下字符串执行字符替换:DieserTextenthältdiverseAkürzungenwiez.B.,d.h.,u.a.oderm.w.H.输出应该是这样的:DieserTextenthältdiverseAbkürzungenwiez.\,B.,d.\,h.,u.\,a.oderm.\,w.\,H.目前我正在使用这段代码:有没有办法结合这两个正则表达式?当我使用以下表达式时,我无法使用匹配的字符:/([a-z]\.){2,}/i非常感谢任何帮助。 最佳答案 想法是找到所有单个字母+

php - PHP 函数可以返回对静态对象的引用吗?

假设我有一个静态对象:classeverything{publicstaticfunctionmust(){return"go!";}}当我这样做时:echoeverything::must();我收到回复:go!这是预期的行为。现在,出于我自己的原因(遗留代码支持),我希望能够从函数调用的返回中调用该静态对象,语法类似于:printaccessorFunction()::must();//OrsomethingasclosetoitaspossiblefunctionaccessorFunction(){returns(referenceto)everything;//Orsomet

php - register_shutdown_function 将引用转换为值?

我正在尝试使用一个关闭函数,该函数使用注册后动态更改的值。我的理解是,通过引用传递变量将允许代码后面部分的更改影响关闭调用。下面的代码证明情况并非如此:我是不是误解了应该怎么做?将引用传递转换为值传递是注册函数的预期行为吗?PHP版本5.5.9 最佳答案 一种可能的解决方案是使用匿名函数(在本例中是一个闭包,捕获了$x作为引用):$x=0;$shutdown=function()use(&$x){echo$x;};register_shutdown_function($shutdown);$x=1;exit();演示:http://

php - 引用 const 变量时 $this 或 self 或 static 哪个最好?

我了解到static比self好,因为self进行后期静态绑定(bind)。但我想知道哪种方法最适合引用const变量。classBlack{constcolor='black';publicfunctionbyThis(){return$this::color;}publicfunctionbySelf(){returnself::color;}publicfunctionbyStatic(){returnstatic::color;}}我检查了所有三个getter都工作正常。哪个是最好的选择?(我使用的是PHP7.0) 最佳答案

php - 父类引用仅存在于子类中的属性是否合适?

在我的团队目前正在进行的项目中,我们正在修改一个商业PHP应用程序。该应用程序中散布着父类检查并使用父类中不存在的属性的代码,如下所示:classA{functiondoSomething(){if(property_exists($this,'some_property')){$this->some_property=$_REQUEST['val'];}}}classBextendsA{protected$some_property;functiondoSomething(){parent::doSomething();}}我们觉得不得不修改这段代码有点脏;这是正确的设计吗?有什么方

php - 通过引用使用 __get()

使用这样的示例类:classTest{publicfunction&__get($name){print_r($name);}}Test的一个实例将这样返回输出:$myTest=newTest;$myTest->foo['bar']['hello']='world';//outputsonlyfoo有没有一种方法可以获得有关正在访问数组的哪个维度的更多信息,向我展示(从前面的示例中)foo的bar元素,和bar的hello元素被定位了? 最佳答案 您不能使用当前的实现。为了使其工作,您必须创建一个数组对象(即:一个实现ArrayAc