致命错误:呼叫时间传递参考

Reg*_*dit 1 php

我在注释行上收到此错误.知道为什么吗?

Fatal error: Call-time pass-by-reference has been removed in myfile.php on line 301
Call Stack
#   Time    Memory  Function    Location
1   0.0002  245352  {main}( )   ../plugins.php:0
2   0.3016  7149968 plugin_sandbox_scrape( )    ../plugins.php:156
Run Code Online (Sandbox Code Playgroud)

代码如下......

function rseo_doTheParse($tag, $post){
    //headings
    $keyword = rseo_sanitize3(trim(strtolower(rseo_getKeyword($post))));
    $content = rseo_sanitize3($post->post_content);
    $match = 0;

            $token = '/<'.$tag.'[^>]*>(.*\b'.$keyword.'\b.*)<\/'.$tag.'>/siU';
            if(preg_match($token, &$content, $matches)) //THIS IS LINE 301
            {
                $match = 1;
            }
            return $match;
        }
Run Code Online (Sandbox Code Playgroud)

Jon*_*Jon 6

删除&from &$content,即通过引用传递的调用时间.

PHP长期以来一直支持通过引用传递参数 ; 历史上,这可以通过声明函数来通过引用接收参数来实现:

function foo(&$argument) { ... }

foo($value); // pass by reference
Run Code Online (Sandbox Code Playgroud)

或者在呼叫站点使用pass-by-reference:

function foo($argument) { ... }

foo(&$value); // call time pass by reference
Run Code Online (Sandbox Code Playgroud)

后一个选项已在PHP 5.4中删除,这就是错误的原因.