có phải tất cả biến trong php đều là biến kiểu tham chiếu ( giống như ruby tất cả biến đều là đối tượng ) ?
trong java có các kiểu dữ liệu không thể thay đổi giá trị , trong php có điều này không ạ ( vd : Java int , string là kiểu dữ liệu không thể thay đổi giá trị mỗi lần ta thay đổi thì thực chất nó tạo ra 1 literal trong pool )
hơi ngoài lề xíu @@ các kiểu dữ liệu nguyên thủy trong java thì giá trị nó được lưu ngay tại biến luôn hay là tham chiếu đến pool ( kiểu như biến chỉ như con trỏ và giá trị con trỏ trỏ đến vùng nhớ trên pool )
Không. Nếu muốn khai báo biến kiểu tham chiếu bạn phải thêm dấu & trước. VD:
$var1 = 'day nhau hoc';
$var2 = &$var1;
Khi bạn khai báo biến, php sẽ gán giá trị cho biến đó. Nếu bạn gán 1 biến khác = biến đấy và thay đôi giá trị 1 trong 2. Thì biến còn lại vẫn không bị ảnh hưởng (trừ khi có reference ‘&’).
PHP linh hoạt khi khai báo biến nên sẽ tự động ép kiểu. VD:
Kể cả bạn có đổi giá trị, nó vẫn tự động ép thành kiểu của giá trị mới. Tất nhiên là bạn vẫn có thể ép kiểu:
$var1= "20"; // string
$var2 = (int) $var1; // int
Mình làm php nên không thể trả lời chính xác được câu hỏi này cho bạn nhờ người khác vậy. Bạn hiểu thế này. Khi khai báo 1 biến nó sẽ ghi địa chỉ biến đấy vào RAM và giá trị được tham chiếu qua cái địa chỉ đấy. Nếu bạn gán tham chiếu 1 biến khác đến biến đấy thì nó sẽ gán cùng 1 địa chỉ. Nếu gán tham trị nó sẽ tạo địa chỉ khác và copy giá trị của biến kia sang.
Có gì sai các bác jav góp ý cho mình :))
3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?