Biến trong php?

em có 1 số thắc mắc về biến trong php

  1. 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 ) ?
  2. 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 )
  3. 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 )

hóng câu trả lời vì quan tâm cùng chủ đề

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:

$var1 = 'asdasdasd'; // string
$var2 = true; // boolean

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 :smiley: 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?