09/10/2018, 23:22

Xác định kích thước của biến = byte

Vậy chẳng lẻ bó tay sao anh em.
thienthan36 viết 01:29 ngày 10/10/2018
Help !
Mình tìm hoài mà không thấy hàm nào thực hiện chức năng này !
Ví dụ bạn xác định kích thức của một array return = byte !
jiSh@n viết 01:28 ngày 10/10/2018
strlen(serialize($array))
mo dung phuc viết 01:33 ngày 10/10/2018
toán tử sizeof (tĩnh)
hay hàm _msise (động)
jiSh@n viết 01:31 ngày 10/10/2018
Toán tử sizeof() là một tên khác của hàm count(), áp dụng vào array sẽ trả về số phần tử của mảng Trong PHP thì ko có _msize()
thienthan36 viết 01:33 ngày 10/10/2018
ù
các hàm như sizeof cout điều xác định phần tử của một mãng mà thôi, không xác định được =byte
strlen(serialize($array)) -> không được nốt
jiSh@n viết 01:35 ngày 10/10/2018
Quote Được gửi bởi thienthan36 View Post
ù
các hàm như sizeof cout điều xác định phần tử của một mãng mà thôi, không xác định được =byte
strlen(serialize($array)) -> không được nốt
PHP Code:
$a=array(null,255,32768,"a"); 
Theo bạn thì cái mảng này chiếm bao nhiêu byte trong bộ nhớ của PHP
mr47 viết 01:25 ngày 10/10/2018
10 bytes
Đúng không nhỉ
jiSh@n viết 01:31 ngày 10/10/2018
Quote Được gửi bởi mr47 View Post
10 bytes
Đúng không nhỉ
Tui cũng ko bít kích thước của null là bao nhiêu nhỉ, 1 byte hay 0 byte Integer của PHP là bao nhiêu byte, 4 hay 8? Đếm theo cách thông thường thi cái array trên có thể là 9 hoặc 10 byte. Nhưng serialize cái mảng $a trên thì ra cái này
PHP Code:
a:4:{i:0;N;i:1;i:255;i:2;i:32768;i:3;s:1:"a";} 
Phân tích cái chuỗi trên sẽ thấy trong bộ nhớ sẽ có 1 ô chứa kiểu dữ liệu 'a' cho biết $a là array, 1 ô nhớ cho biết số phần tử của $a là 4, rồi đối với mỗi phần tử của $a lại có 1 ô cho biết kiểu, 1 ô chứa giá trị, nếu là string thì phải có thêm chiều dài. Như vậy thật sự $a chiếm bao nhiêu byte trong bộ nhớ PHP ko cho biết điều này. Nhưng tôi chắc chắn 1 điều khi lưu $a vào session hoặc database thì chắc chắn $a chiếm 46 byte .

Trích từ PHP:
The type of a variable is usually not set by the programmer; rather, it is decided at runtime by PHP depending on the context in which that variable is used.
mr47 viết 01:28 ngày 10/10/2018
Đúng rồi, các kiểu dữ liệu trong PHP thật ra chỉ là trừu tượng do PHP engine quản lý! Không thể đếm theo cách thông thường như C được!
dùng memory_get_usage() thử xem?
Bài liên quan
0