PHP通过引用传递数组

til*_*lda 3 php arrays reference

  1. 什么是array_splice在PHP中使用的正确方法?函数头清楚地说:

    array_splice ( array &$input , int $offset... 所以它应该接受引用作为第一个参数.

    但是,一条线

    array_push(&$this->contextsIds, $contextId);

    触发错误已弃用:已在...第132行中弃用了调用时间传递引用

  2. 如何返回对数组的引用?我有:

    public function &getContextsIds() {
        return is_array($this->contextsIds) ? $this->contextsIds : array();    
    }
    
    Run Code Online (Sandbox Code Playgroud)

    但它说注意:只应通过引用返回变量引用

cas*_*nca 7

  1. 该函数已被声明为引用(array &$input); &调用函数时你不需要再次使用它.只需将其称为:

    array_push($this->contextsIds, $contextId);
    
    Run Code Online (Sandbox Code Playgroud)
  2. 正如消息所说,您应该只通过引用返回实际变量,而不仅仅是值.在您的示例中,有两个这样的实例:? :运算符求值为一个值,并且array()它本身也只是一个未绑定到任何变量的值.您应该只返回您的类成员,无论它是否为空:

    return $this->contextIds;
    
    Run Code Online (Sandbox Code Playgroud)