Tôi đang tạo một khung cơ bản trong PHP. Tôi cần chuyển dữ liệu cho trang hiện tại vào các chức năng khác nhau, cho phép họ sửa đổi và lưu nó, sau đó chuyển nó trở lại trang để hiển thị. Ban đầu tôi dự định lưu trữ dữ liệu trong một biến toàn cục như $GLOBALS['data']
, nhưng tôi bắt đầu nghĩ rằng việc sử dụng toàn cầu là một ý tưởng tồi. Vì vậy, tôi nghĩ rằng thay vào đó tôi sẽ đặt một biến tĩnh trong lớp hệ thống, và truy cập nó bằng cách sử dụng system::$data
. Vì vậy, câu hỏi của tôi là, sẽ tốt hơn và tại sao?Biến toàn cầu và biến tĩnh trong PHP
này:
$GLOBALS['data'] = array();
$GLOBALS['data']['page_title'] = 'Home';
echo $GLOBALS['data']['page_title'];
Hoặc này:
class system
{
public static $data = array()
}
function data($new_var)
{
system::$data = array_merge(system::$data, $new_var);
}
data(array('page_title' => 'Home'));
echo system::$data['page_title'];
bài viết tuyệt vời –
Có sự khác biệt về hiệu suất không? Dường như hình cầu không hiệu quả bằng cách sử dụng biến tĩnh. –
@Kyle ** Nó không quan trọng. ** Nghiêm túc đấy. Có lẽ có một sự khác biệt, nhưng nó rất nhỏ về mặt thiên văn để không liên quan. Ưu tiên hàng đầu của bạn là viết mã có thể duy trì, hợp lý, có thể đọc được và tất cả các mã khác. Các biến số global và 'public static' đều là khủng khiếp cho mục đích này. – deceze