草庐IT

弱引用

全部标签

php - 为什么 PHP 在一种情况下允许将文字传递给按引用传递的参数,而在其他情况下不允许?

array_shift()函数通过引用获取一个参数。传递数组文字会导致fatalerror:$php-r'var_export(array_shift(array("Test#0"));';echoFatalerror:OnlyvariablescanbepassedbyreferenceinCommandlinecodeonline1这如预期的那样失败了。但是,当使用call_user_func_array调用该函数时,PHP表现异常:执行时:$phptest.php'Test#1'Warning:Parameter1toarray_shift()expectedtobearefer

php - 在 Python 中使用 flask 进行 Hmac 验证(在 PHP 和 RUBY 中有引用)

我一直在研究一种在python中使用flask为selly.gg商家网站实现HMAC验证的方法。因此selly的开发文档提供了以下示例来验证HMAC签名(在PHP和ruby​​中):https://developer.selly.gg/?php#signing-validating(代码如下:)PHP:ruby:signature=OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha512'),secret,payload.to_json)is_valid_signature=ActiveSupport::SecurityUtils.secu

php - 可能意外发生的引用和数组

有人可以解释一下这里的引用吗?我知道引用导致它发生但如何发生?为什么只在2的索引中?为什么不是其他的?我知道引用的作用,但在这个特定示例中我迷路了:$a=array('zero','one','two');foreach($aas&$v){}foreach($aas$v){}print_r($a);输出:Array([0]=>zero[1]=>one[2]=>one) 最佳答案 在第一个foreach循环之后,$v将是对$a中最后一个元素的引用。在下面的循环中,$v将被分配给zero,然后是one,最后是它自己(它是一个引用)。由于

PHP:可以从对数组元素的引用中确定父数组的名称和键吗?

假设我们有这样一个数组$arr=array(array('a'=>1,'b'=>2),array('c'=>3,'d'=>4));以及对其元素之一的引用$element=&$arr[1]['c'];我的问题是是否可以仅使用引用返回到原始数组?那就是在不知道名字的情况下以某种方式返回到父数组......这在更复杂的场景中对我很有用。 最佳答案 不,这当然不可能。作为“引用”(如PHP所称;它实际上是一个复制抑制剂)在这件事上一点帮助也没有。您必须将原始数组与元素一起存储。$elArrPair=array("container"=>$a

php - 论坛中的递归引用

我在一个用PHP编写的网站上为我自己的个人论坛编写了一个报价功能。消息引用标签看起来像[quote=username]message[/quote],所以我写了那个函数:$str=preg_replace('#\[quote=(.*?)\](.*?)\[/quote\]#is','$1wrote:$2',$str);如果引用是一个,这个就可以用,但是用户引用一个引用,这个就不行了。所以我需要一种递归引用来应用这种行为。我试着搜索了很多主题,但我真的不明白它是如何工作的。对于进行此类操作的任何建议/提示,我们将不胜感激!让我知道,谢谢!编辑最后,这是我自己的解决方案:if(preg_ma

php - 从 call_user_func() 调用时,array_pop() 需要弃用的按引用调用

call_user_func('array_pop',$myarray);给出'参数1给array_pop()期望是一个引用,给定的值',而call_user_func('array_pop',&$myarray);给出“调用时间传递引用已被弃用”。那我该怎么办?我在Windows上使用的是“PHP5.3.5版”,无法关闭已弃用的警告。谢谢! 最佳答案 要么直接调用它:array_pop($myarray);或者使用call_user_func_array(),它接受一个引用数组作为参数,而不会对您大喊大叫调用时间传递引用:call

php - 通过引用返回

在PHP文档中它说:Donotusereturn-by-referencetoincreaseperformance.Theenginewillautomaticallyoptimizethisonitsown.我希望返回对数组的引用(这是我的类的一个属性)。PHP如何优化它,因为数组不是对象?如果数组有10亿个条目,如果我不通过引用传递它,我是否会得到两个具有10亿个条目的数组存储在内存中? 最佳答案 PHP使用写时复制。这意味着如果您将巨大的数组作为函数参数传递并且仅从中读取(例如foreach),您将不会写入它,因此它不需要制

php - Drupal FAPI 错误;无法创建对/从字符串偏移量或重载对象的引用

我正尝试按照本教程的思路,将一些自定义自动完成功能添加到我的用户注册页面上的几个文本字段;http://drupal.org/node/854216.我已经能够成功地做到这一点,但现在每当我提交注册表时,我都会得到一个空白页面,并且这个错误会出现在日志中;PHPFatalerror:Cannotcreatereferencesto/fromstringoffsetsnoroverloadedobjectsin/var/www/html/drupal/includes/common.inconline6448,referer:http://[...]/drupal/?q=user/reg

PHP 迭代器不能通过引用与 foreach 一起使用

我有一个实现Iterator的对象并包含2个数组:“entries”和“pages”。每当我循环遍历此对象时,我想修改条目数组,但我收到错误Aniteratorcannotbeusedwithforeachbyreference我看到它开始于PHP5.2.我的问题是,如何在使用foreach时使用Iterator类来更改循环对象的值?我的代码://$flavors=instanceofthisclass:classPaginatedResultSetimplements\Iterator{private$position=0;public$entries=array();public$

php - 在 PHP 中使用 pg_fetch_row 引用列名

如何使用PHP的pg_fetch_row引用列名?Example关于我们一直在用Cha调试的代码。$dbconn=pg_connect("host=localhostport=5432dbname=noauser=noapassword=123");$result_titles_tags=pg_prepare($dbconn,"query777","SELECTquestion_id,titleFROMquestionsWHEREquestion_idIN(SELECTquestion_idFROMquestionsORDERBYwas_sent_at_timeDESCLIMIT50)