Tiếp tục bài viết trong serial tài liệu php cơ bản, hôm nay mình sẽ giới thiệu đến các bạn về Biến và dữ liệu
Biến & dữ liệu
Biến & dữ liệu
Đúng như tên gọi, biến là một phần tử chứa các giá trị thay đổi (biến thiên). Để chỉ định một biến, bạn viết dấu $ rồi đến tên của biến.
Ví dụ:
<?php $a = 1; $a = ‘hello world’; $a = 23.45; $a = &$a; ?>
Biến trong PHP có thể mang một kiểu giá trị bất kì. Và PHP sẽ căn cứ vào giá trị sau cùng mà biến lưu giữ để “quyết định” xem biến đó cần có kiểu gì. Với ví dụ trên, biến $a sẽ có kiểu dữ liệu thay đổi sau mỗi lệnh gán dữ liệu, cụ thể như sau:
Bài tập 4.1:
- Có thể chỉ dùng chữ cái (a,b,c…) để đặt tên biến hay không?
- Có thể chỉ dùng chữ số (0,1,2,3…) để đặt tên biến hay không?
- Có thể dùng kết hợp chữ cái và chữ số để đặt tên biến hay không?
- Có thể dùng các ký tự + – * / để đặt tên biến hay không?
- Tên biến có phân biệt chữ hoa và chữ thường không? (Ví dụ, biến $abc với biến $Abc là khác nhau hay giống nhau)
- Tên biến có thể bắt đầu bằng một chữ số hay không? (Ví dụ $1abc, $2cdh, $3kkklm…)
- Tên biến có thể bắt đầu bằng dấu gạch dưới _ hay không? (Ví dụ $_1c, $_2c, $_3m…)
- Có được đặt 1 biến tên là $php hay không?
- Có được đặt 1 biến tên là $echo hay không?
- Lệnh echo được sử dụng để hiển thị dữ liệu ra màn hình
- Dấu , được sử dụng để hiển thị nhiều kiểu dữ liệu khác nhau
- Dấu nháy đơn ‘ được sử dụng để bao chuỗi nhằm tăng tốc chương trình
- Hàm var_dump($a) được sử dụng để hiển thị kiểu và giá trị của biến $a
- Hàm rand() được sử dụng để tạo ra một giá trị ngẫu nhiên
- int(1) nghĩa là dữ liệu kiểu nguyên (int là viết tắt chữ integer – số nguyên) và có giá trị là 1
- string(11) nghĩa là dữ liệu kiểu chuỗi ký tự, tuy nhiên, con số trong ngoặc đơn lúc này là biểu thị độ dài của chuỗi (11 ký tự), thay vì giá trị của biến.
- float(23.45) nghĩa là dữ liệu kiểu số thực và có giá trị là 23.45 (hai mươi ba phết bốn mươi lăm / hai mươi ba phẩy bốn mươi lăm)
- int + int tạo ra dữ liệu kiểu gì?
- int + float tạo ra dữ liệu kiểu gì?
- float + int tạo ra dữ liệu kiểu gì?
- int + string tạo ra dữ liệu kiểu gì?
- string + float tạo ra dữ liệu kiểu gì?
- Int . int tạo ra dữ liệu kiểu gì? (dấu . được sử dụng khi các bạn dùng nối chuỗi ở ví dụ của lý thuyết bài 3)
- Float . float tạo ra dữ liệu kiểu gì?
- String . float tạo ra dữ liệu kiểu gì?
- Int + float . string tạo ra dữ liệu kiểu gì?
- int * int tạo ra dữ liệu kiểu gì?
- int / float tạo ra dữ liệu kiểu gì?
- float / int tạo ra dữ liệu kiểu gì?
- int / string tạo ra dữ liệu kiểu gì?
- string * float tạo ra dữ liệu kiểu gì?
- Int / int tạo ra dữ liệu kiểu gì? (dấu . được sử dụng khi các bạn dùng nối chuỗi ở ví dụ của lý thuyết bài 3)
- Float / float tạo ra dữ liệu kiểu gì?
- float * string tạo ra dữ liệu kiểu gì?
- Int / float + string tạo ra dữ liệu kiểu gì?
- Int % float tạo ra dữ liệu kiểu gì? (dấu % được dùng để lấy phần dư trong một phép chia. Ví dụ 10/2 được 5 dư 0 nên 10%2=0; 10/3=3 dư 1 nên 10%3=1)
- int % int tạo ra dữ liệu kiểu gì?
- Dữ liệu kiểu chuỗi trong PHP có độ dài tối đa bao nhiêu ký tự? Giải thích.
- Dữ liệu kiểu số nguyên trong PHP có thể lớn đến bao nhiêu? Giải thích.
- Dữ liệu kiểu số thực trong PHP có thể lớn đến bao nhiêu? Giải thích.
Một số chú ý khi xem ví dụ 4-1:
Nhìn vào kết quả chạy chương trình ví dụ, bạn sẽ thấy ngay, khi gán cho biến $a một số nguyên thì $a mang kiểu dữ liệu int, khi gán cho $a một số thực thì $a mang kiểu dữ liệu float, khi gán cho $a một chuỗi thì $a mang kiểu dữ liệu string.
Bài tập 4.2:
Với quy ước rằng int đại diện cho một biến có kiểu int, float đại diện cho biến có kiểu float và string đại diện cho biến có kiểu string, hãy cho biết:
Với tất cả các câu trả lời, phải có dẫn chứng chứng minh.
Bài tập 4.3: Chuyển từ kiểu nguyên về kiểu chuỗi
Sử dụng các phép toán + – * / % . (nối chuỗi), thêm vào mã lập trình ở chỗ bôi vàng để có được kết quả như hình minh hoạ.
Bài tập 4.4: Chuyển từ kiểu chuỗi về kiểu nguyên
Sử dụng các phép toán + – * / % . (nối chuỗi), thêm vào mã lập trình ở chỗ bôi vàng để có được kết quả như hình minh hoạ.
Bài tập 4.5: Chuyển từ kiểu nguyên về kiểu thực
Sử dụng các phép toán + – * / % . (nối chuỗi), thêm vào mã lập trình ở chỗ bôi vàng để có được kết quả như hình minh hoạ.
Bài tập 4.6:
Chú ý: không được đi “search” thông tin rồi điền vô, mà các bạn phải tự tìm cách “thực nghiệm” và đưa ra kết luận. Kể cả là kết luận dự đoán tôi cũng chấp nhận.
“Ép” kiểu
Qua các bài tập 4.3, 4.4, 4.5 các bạn có thể tự rút ra kết luận về một số cách thức chuyển đổi qua lại các kiểu dữ liệu khác nhau. Tuy nhiên, sẽ rất khó khăn để chuyển từ kiểu dữ liệu số thực về ngược lại kiểu dữ liệu số nguyên chỉ với các phép toán + – * / % và .
Trong thực tế, PHP cung cấp cho chúng ta một cách thức để chuyển kiểu dữ liệu nhanh gọn hơn, đó là “ép” kiểu. Để ép một kiểu dữ liệu bất kỳ về kiểu nguyên, bạn chỉ cần thêm toán tử (int) vào trước giá trị của nó.
Ví dụ:
Tương tự (float) dùng để ép kiểu về giá trị số thực và (string) để ép kiểu về giá trị chuỗi ký tự:
Hoặc như các bạn đã biết từ các bài tập trước, có thể dùng dấu nháy kép “ để ép kiểu của biến về string một cách đơn giản thế này:
<?php $a=12.34; $b = “$a”; var_dump($b); ?>
Nói thêm về dữ liệu kiểu chuỗi
String là kiểu dữ liệu mà bạn cần quan tâm nhiều hơn các kiểu khác, vì “mai mốt” bạn sẽ phải giải quyết nhiều vấn đề với chuỗi hơn bất cứ kiểu dữ liệu nào khác (trừ khi bạn là một chuyên gia toán hay vật lý học J).
Để tạo ra một giá trị kiểu string, chúng ta có thể dùng nháy đơn, nháy kép hoặc ép kiểu bằng cú pháp (string)…
<?php $s1 = ‘123456’; $s2 = “123456”; $s3 = (string)123456; ?>
Sử dụng dấu ‘ luôn giúp bạn tăng tốc chương trình so với việc dùng “, vì PHP “đối xử” với các giá trị đặt trong “ theo một cách riêng. PHP sẽ truy tìm xem trong chuỗi đó có dấu \ hay không, nếu có, nó sẽ diễn dịch dấu \ và ký tự theo sau thành những nội dung đặc biệt:
Cặp ký tự | Ứng xử của PHP | Ghi chú |
\n | Biến \n thành ký tự điều khiển “xuống dòng” | Tương tự như việc bạn gõ phím Enter |
\t | Biến \t thành ký tự điều khiển “nhảy tab” | Tương tự như việc bạn gõ phím Tab |
\’ | \’ sẽ được giữ nguyên là \’ | Nếu bạn bao chuỗi bằng dấu nháy đơn ‘ thì cặp ký tự \’ trong đó sẽ được biến thành một dấu nháy đơn ‘ . Còn khi bao chuỗi bằng nháy kép, nó sẽ GIỮ NGUYÊN GIÁ TRỊ |
\” | Biến \” thành ký tự nháy kép ” | Đây là cách để bạn đưa một ký tự nháy kép vào chuỗi được bao bằng nháy kép |
\$ | Biến \$ thành ký tự $ | Thông thường, $a đặt ở trong nháy kép sẽ được PHP diễn dịch thành giá trị của biến a. Nhưng khi bạn viết \$a thì chữ $a sẽ được ghi ra màn hình thay vì giá trị của biến a |
\\ | Biến \\ thành ký tự \ | Do ký tự \ được PHP dò tìm như một ký tự điều khiển đặc biệt, nên khi muốn viết nó ra màn hình, bạn phải ghi là \\ . Cách làm này có tác dụng cả khi đặt chuỗi trong nháy kép cũng như nháy đơn |
Bài tập 4.7: Hãy dùng lệnh echo để viết ra màn hình các dòng chữ sau đây
Xin chao, toi la Long “/\/\e`o /\/\un”
Nen /\/guoi ta goi toi la Ty Phu Khong /\/ha`
Chú ý :
1) Chữ M trong « Meo Mun » và chữ N trong « Nguoi ta », « Khong Nha » được ghép bởi các ký tự gạch chéo /\/\ . Dấu huyền trong chữ Mèo Mun và chữ Nhà là dấu ` nằm chung với dấu ~, phía dưới nút Esc trên bàn phím.
2) Các bạn phải ĐỌC THẬT KỸ đề bài. Bài này có đố mẹo!
Bài tập 4.8 : Hãy dùng lệnh echo viết ra màn hình nội dung sau đây (bài này làm bình thường, không đố mẹo gì hết :D Mục đích để giúp các bạn làm quen với việc xử lý các ký tự đặc biệt như « ‘ \ $ khi lập trình thôi)
<?php
echo ‘this is a simple string’;
echo ‘You can also have embedded newlines in
strings this way as it is
okay to do’;
// Outputs: Arnold once said: “I’ll be back”
echo ‘Arnold once said: “I\’ll be back”‘;
// Outputs: You deleted C:\*.*?
echo ‘You deleted C:\\*.*?’;
// Outputs: You deleted C:\*.*?
echo ‘You deleted C:\*.*?’;
// Outputs: This will not expand: \n a newline
echo ‘This will not expand: \n a newline’;
// Outputs: Variables do not $expand $either
echo ‘Variables do not $expand $either’;
Không có nhận xét nào:
Đăng nhận xét