小编Lia*_*iam的帖子

PHP通过引用混淆

简而言之,我有以下功能作为我的框架的一部分:

public function use_parameters()
{
    $parameters = func_get_args();

    $stack = debug_backtrace();

    foreach($stack[0]['args'] as $key => &$parameter)
    {
        $parameter = array_shift($this->parameter_values);
    }
}
Run Code Online (Sandbox Code Playgroud)

其中$ this-> parameter_values = array('value1','value2','value3','value4','value5',...);

在以下上下文中使用:

$instance->use_parameters(&$foo, &$bah);
Run Code Online (Sandbox Code Playgroud)

分配:

$foo = 'value1';
$bah = 'value2';
Run Code Online (Sandbox Code Playgroud)

再次打电话给它

$instance->use_parameters(&$something); 
Run Code Online (Sandbox Code Playgroud)

将设置

$something = 'value3'
Run Code Online (Sandbox Code Playgroud)

等等.

从5.3开始,它将返回"已弃用:调用时间传递已被弃用"警告.为了符合5.3的工作方式,我删除了导致:

$instance->use_parameters($foo, $bah);
Run Code Online (Sandbox Code Playgroud)

不幸的是,这导致了这些论点没有确定,我正在努力想出一个解决方案.

值得我在Apache/2.2.16(Debian)上运行PHP v5.3.3-7

任何帮助将不胜感激.

php pass-by-reference

5
推荐指数
1
解决办法
478
查看次数

计算存储库目录中的SVN提交数

我需要找到存储库中目录的提交数量.我将在PHP中处理结果,因此可能需要使用exec().它将在Linux上运行.

我有一个有点古怪的存储库,目录结构看起来有点像:

  • /主干/ SECTION1
  • /主干/第2节
  • / trunk/section3(依此类推)

我将使用结果作为每个部分的版本号的一部分.目前我使用的是最新版本,但理想情况下要按顺序编号而不是84 - > 120 - > 400等.

我计划使用上面的例子计算提交并使用'3'而不是'400'.

php svn

1
推荐指数
1
解决办法
2118
查看次数

标签 统计

php ×2

pass-by-reference ×1

svn ×1