Tôi đã đoạn mã sau:PHP sai mã hoạt động tốt
class A {
public function methodB()
{
// do something
return 1;
}
}
$a = A::methodB();
Nó không bao giờ nên làm việc và nó hoạt động trên máy đó! Nó trở lại 1. Thực sự, tôi thề tôi không say.
Tất nhiên nếu tôi chạy nó trên máy tính của tôi hoặc trên máy chủ sản xuất, nó sẽ không hoạt động. Vì bạn không thể gọi các phương thức không tĩnh như tĩnh. Lớp học phải luôn được khởi tạo ngay từ đầu.
Tôi đã lo lắng về điều đó. Suy nghĩ ngày hôm nay khi tôi thiết lập một máy làm việc riêng biệt để thử nghiệm dự án, tôi đã trở lại môi trường ở đó mã này hoạt động.
Mọi thứ trở nên tồi tệ hơn - Tôi có các nhà phát triển trong nhóm, những người vẫn chưa nhận được sự khác biệt rõ ràng giữa các phương pháp tĩnh và không tĩnh. Kết quả là họ có mã những gì hoạt động tốt trên máy tính của họ nhưng nó không thành công trên bất kỳ môi trường nào khác.
TẠI SAO nó hoạt động? Tôi muốn mã như vậy thất bại. Nó không hoạt động.
Cấu hình của máy mà nó hoạt động được như sau:
lang thang @ lang thang-ubuntu-đáng tin cậy-32:/var/www/apotheke $ php -v PHP 5.6.17-3 + deb. sury.org ~ trusty + 1 (cli) Bản quyền (c) 1997-2015 Nhóm PHP Zend Engine v2.6.0, Bản quyền (c) 1998-2015 Zend Technologies với Zend OPcache v7.0.6-dev, Bản quyền (c) 1999 -2015, bởi Zend Technologies
Thực sự, tôi cảm thấy thật ngu ngốc. Tôi có bỏ lỡ điều gì đó không?
Kiểm tra điều này: - http://stackoverflow.com/questions/3754786/calling-non-static-method-with –
Miễn là bạn không sử dụng '$ this', bạn có thể lấy mã này bằng PHP –
Tôi muốn nó thất bại ...... (kiểm tra các tài liệu, phải có một số thiết lập để làm cho nó thất bại tôi hy vọng) – Tebe