2012-09-07 31 views
49

thể trùng lặp:
Call-time pass-by-reference has been deprecatedGọi thời gian pass-by-reference đã được gỡ bỏ

Trong khi nó có thể được ghi lại ở đâu đó trên internet, tôi không thể tìm thấy một giải pháp cho vấn đề của tôi . Kể từ bản cập nhật PHP 5.4, các tham chiếu pass-by-references đã bị loại bỏ.

Bây giờ tôi gặp vấn đề với đoạn mã này, và tôi hy vọng ai đó có thể thấy những gì tôi đang cố gắng làm với nó để họ có thể giúp tôi giải quyết vấn đề vượt qua tham chiếu của tôi.

Dưới đây là mã trong câu hỏi:

public function trigger_hooks($command, &$client, $input) { 
    if(isset($this->hooks[$command])) { 
     foreach($this->hooks[$command] as $func) { 
      PS3socket::debug('Triggering Hook \'' . $func . '\' for \'' . $command . '\''); 
      $continue = call_user_func($func, &$this, &$client, $input); 
      if($continue === FALSE) { 
       break; 
      } 
     } 
    } 
} 

.

+0

gì sẽ xảy ra nếu bạn chỉ cần loại bỏ các ampersands? –

+0

Tôi nhận được thông tin sau, trên dòng 125; đó là 'if (socket_select ($ đọc, $ write = NULL, $ except = NULL, $ tv_sec = 5) <1)' ** Tiêu chuẩn nghiêm ngặt: Chỉ các biến được chuyển qua tham chiếu ** -Nick –

+0

@xNickD: có vẻ như hoàn toàn không liên quan – newacct

Trả lời

91

Chỉ thời gian gọi tính năng truyền tham chiếu bị xóa. Vì vậy, thay đổi:

call_user_func($func, &$this, &$client ... 

Để này:

call_user_func($func, $this, $client ... 

&$this không bao giờ nên cần thiết sau khi PHP4 nào kỳ.

Nếu bạn hoàn toàn cần $ khách hàng để được thông qua tham khảo, cập nhật các chức năng ($ func) chữ ký thay (function func(&$client) {)

+0

Xin chào, Thuốc nổ, - Kỳ lạ là tôi nhận được nhiều lỗi hơn nếu tôi làm như vậy. ** Tiêu chuẩn nghiêm ngặt: Chỉ các biến được chuyển qua tham chiếu ** Tôi không biết phải làm gì. Nó làm tôi bối rối. : \ –

+0

Xin chào, Cảm ơn bài đăng, tôi không phải là người PHP mà làm việc trên một chủ đề wordpress cho thấy lỗi và tôi đã cố định bằng kỹ thuật của bạn. '& $ This' Tôi biết $ điều này nhưng điều gì xảy ra sau khi' & $ this' – Nofel

+0

Trừ khi bạn đang sử dụng php 4 là nghi ngờ bạn không cần '& $ this'. Ngay cả khi bạn đang sử dụng như xa trở lại như php 5 bạn không nên cần nó. Nó chỉ là một phương pháp cũ để đảm bảo rằng đối tượng tự tham chiếu '$ this' đã được thông qua bởi tham chiếu, nhưng vì nó đã là một tham chiếu đối tượng, nó không cần thiết. –