Đừng nhầm lẫn OO của Java với PHP. Java là một ngôn ngữ mô hình duy nhất có nghĩa là nó chỉ thực hiện OO. Mặt khác, PHP là một ngôn ngữ đa mô hình, bạn có thể thực hiện lập trình chức năng hoặc OO hoặc cả hai.
Bây giờ không có việc triển khai OO "xấu". OO của Java không phải là một triển khai dứt khoát mà mọi ngôn ngữ khác nên hoặc phải tuân theo. Có một số khái niệm dứt khoát và cả hai ngôn ngữ đều thực hiện chúng theo cách riêng của chúng (Java từ đầu, PHP kể từ phiên bản 5).
Vì vậy, để trả lời câu hỏi của bạn: CI làm gì và bạn đang làm gì với nó là đúng trong thế giới PHP. Các mảng của PHP là một trong những cấu trúc linh hoạt và hữu ích nhất của nó và thực sự là một điều tốt khi sử dụng các mảng trên các đối tượng khi dữ liệu của bạn chỉ là thông tin (không mang theo logic với chúng). Mã OO đầy đủ không giống với "mã OO".
Nếu bạn đang bắt đầu với PHP, hãy sử dụng Java làm tài liệu tham khảo cho các thực tiễn OO tốt nhưng không giới hạn hiểu biết của bạn về PHP vì điều "Java làm khác đi". Bạn thực sự có thể làm hỏng cả hai, mô hình sẽ không cứu bạn nếu bạn không có được các khái niệm.
Nếu trong bất kỳ trường hợp nào bạn thấy Java nhiều hơn theo ý thích của bạn (như một sở thích cá nhân), hãy kiểm tra Ruby để phát triển web, chúng có liên quan chặt chẽ hơn một chút.