bất cứ ai có ý tưởng nếu và làm thế nào là nó có thể phá hủy/thay đổi đối tượng php được tham chiếu ở nhiều nơi? unset rõ ràng phá hủy chỉ một tham chiếu và đôi khi truy tìm tất cả các tham chiếu theo cách thủ công không phải là một tùy chọn. Bất kỳ ý tưởng? Có lẽ có cái gì đó tôi đang thiếu trong Reflection?có cách nào để truy cập tất cả các tham chiếu đến đối tượng đã cho không?
5
A
Trả lời
3
Nice câu trả lời Mark, nhưng tôi không chắc chắn cách này sẽ làm việc:
Sơ đồ đầu tiên:
<?php
$obj = "foo";
$a = $obj;
$b = $obj;
$c = $obj;
$c = NULL;
unset($c);
var_dump($a, $b, $c);
Kết quả:
string(3) "foo"
string(3) "foo"
NULL
Second Diagram:
<?php
$obj = "foo";
$wrapper =& $obj;
$a = $wrapper;
$b = $wrapper;
$c = $wrapper;
$c = NULL;
unset($c);
var_dump($a, $b, $c);
Kết quả:
string(3) "foo"
string(3) "foo"
NULL
Way đúng:
<?php
$obj = "foo";
$a =& $obj;
$b =& $obj;
$c =& $obj;
$c = NULL;
var_dump($a, $b, $c);
Kết quả:
NULL
NULL
NULL
Giải thích:
Bạn cần phải tham khảo các biến của bạn $ a, $ b, $ c đến địa chỉ bộ nhớ của $ obj, đây khi bạn đặt $ c thành NULL, điều này sẽ đặt địa chỉ bộ nhớ thực tế thành NULL thay vì chỉ tham chiếu.
6
Không, nhưng thay vào đó, bạn có thể sử dụng thêm một mức không giới hạn. Hiện nay bạn có điều này:
a b c a b (unset)
\ | / \ |
\ | / --> \ |
object object
Thay vào đó bạn có thể làm điều này:
a b c a b c
\ | / \ | /
\ | / --> \ | /
wrapper (unset)
|
|
object
+0
Câu trả lời hình ảnh đẹp mắt. – webbiedave
Các vấn đề liên quan
- 1. C#: Có cách nào để dễ dàng tìm/cập nhật tất cả các tham chiếu đến một đối tượng không?
- 2. Vectơ tham chiếu đến các đối tượng
- 3. Tôi làm cách nào để tìm tất cả các đối tượng tham chiếu myObject?
- 4. Tìm tất cả các tham chiếu đến một đối tượng trong Lua
- 5. C#: Tạo tham chiếu mạnh mẽ giữa các đối tượng, không có tham chiếu đến các đối tượng khác
- 6. VisualVM - Tìm tất cả các tham chiếu đến một lớp
- 7. Có tốt không khi tất cả các hàm setter trả về một tham chiếu đến đối tượng trong C++?
- 8. pydev: tìm tất cả các tham chiếu đến hàm
- 9. Trong Delphi có cách nào để xem tất cả các tham chiếu và liên kết đến một thành phần không?
- 10. Cần có một tham chiếu đối tượng để truy cập thành viên không tĩnh
- 11. hủy một đối tượng có tham chiếu đến chính nó
- 12. Làm cách nào để theo dõi các tham chiếu đến các đối tượng Perl?
- 13. Cách xóa một chi nhánh và tất cả các đối tượng mà nó tham chiếu
- 14. Đối tượng xóa tham chiếu đến tự
- 15. Nuget "đã có tham chiếu đến"
- 16. "Đã có một tham chiếu đến Essential.Diagnostics"
- 17. require.js: Truy cập tất cả các mô-đun đã tải
- 18. Xóa các mục khỏi danh sách và tất cả các tham chiếu đến chúng
- 19. Tìm tham chiếu đến đối tượng trong thời gian chạy
- 20. Truy cập tất cả các đối số hàm trong R
- 21. Excel VBA tham chiếu đến đối tượng QueryTable theo tên
- 22. Công cụ để thay đổi tên đơn vị và tất cả các tham chiếu đến nó
- 23. Sử dụng chuỗi để tham chiếu đến tên đối tượng
- 24. Có phải tất cả các đối tượng không được kế thừa từ kiểu tham chiếu System.ValueType không?
- 25. const tham chiếu đến đối tượng không const
- 26. Tìm tất cả các tham chiếu đến một đối tượng trong cơ sở dữ liệu SQL Server
- 27. Có thể không cho phép tham chiếu đến một đối tượng
- 28. Làm cách nào để tham chiếu động một đối tượng?
- 29. IS có cách nào để có được một tham chiếu đến các đối tượng gọi trong C#?
- 30. Theo dõi tất cả các tham chiếu đối tượng trong C#
mặc dù thực tế, khi đặt tham chiếu đến một đối tượng, không phải lúc nào cũng dễ dàng đặt nó bằng cách sử dụng tham chiếu. – andho