Cú pháp cơ bản biến hằng và kiểu dữ liệu trong php


tự học php cơ bản 01/06/2015 Cùng chuyên mục

Các khái niệm cơ bản: biến, hằng, kiểu dữ liệu

Các khái niệm cơ bản

Biến là gì?

Biến là mọt định danh, dùng để lưu trữ dữ liệu tạm thời, có thể thay đổi, sử dụng cho các mục đích trong lập trình. Để làm việc với biến cần biết "tên biến" và "kiểu dữ liệu", "giá trị của biến". Đặt tên biến là thao tác cơ bản. Biến trong php khác với các ngôn ngữ biên dịch như C và java. Bạn không cần phải khai báo kiểu, giá trị khởi tạo và một biến có thể chứa nhiều kiểu dữ liệu. 

Quy tắc (cú pháp) khai báo biến:

Khai báo biến bắt đầu bằng ký tự $, sau đó là tên biến, một tên biến hợp lệ phải đảm bảo: bắt đầu bằng ( A-Z a-z) ( ký tự hoa, ký tự thường) hoặc _ , sau đó là chữ hoặc số, không có khoảng trắng. 
Ví dụ 1: Các biến được đặt tên hợp lệ

$coutn
$_object
$A123

Ví dụ 2: Các biến đặt tên sai quy tắc

$1abc; //bắt đầu bằng chữ số
function; //thiếu dấu $
$@var; //bắt đầu bằng ký tự đặc biệt khác ký tự _

Bạn không cần thiết phải khai báo biến theo mẫu: <biến> <kiểu dữ liệu>.
Ví dụ 3: Khai báo biến trong php

$PI = 3.14;
$r = 5; //bán kính
$chu_vi = 2*$r*$PI;

Hằng số (constant)

Ngược lại với biến hằng số dùng để lưu các giá trị không thay đổi. Đặt tên cho hằng cũng tương tự như biến số ( không có khoảng trắng ), nên được viết hoa và với các hằng số có tên gần giống nhau sử dụng dấu $ để phân biệt. Với các từ đơn trong tên hằng, nên phân biệt bằng dấu _ cho dễ đọc, dễ hiểu. Khi sử dụng ta chỉ cần gọi tên hằng mà không có ký $ ( khác với biến )
Hằng được khai báo bằng từ khóa define(tên hằng, giá trị).
Ví dụ 4: Khai báo hằng số trong php

define('EMAIL','my_email@gmail.com');
echo EMAIL; // kết quả: my_email@gmail.com
define('LAST_NAME','Tran Van Son');
echo LAST_NAME; // kết quả: Tran Van Son

Kiểu dữ liệu

Mặc dù một biến trong PHP có thể chứa các kiểu dữ liệu bất kỳ tuy nhiên với từng kiểu dữ liệu lại có các cách làm việc khác nhau. Các kiểu dữ liệu khác nhau có các phép toán, các phương thức (hay còn gọi là hàm) khác nhau tác động được tới nó sẽ bị lỗi - cả về ý nghĩa lẫn cú pháp. Do vậy, bạn cần tìm hiểu về kiểu dữ liệu trong PHP để có thể sử dụng đúng và hiệu quả về sau này. PHP hỗ trợ 8 kiểu dữ liệu - trong đó có 5 loại dữ liệu cơ bản (scalar datatype) và 3 loại dữ liệu phức hợp. Trong việc tìm hiểu kiểu dữ liệu, các bạn xác định nắm rõ:

  • Ý nghĩa 
  • Các phép toán được phép tác động
  • (*) Miền giá trị - kích thước 

Về ý nghĩa - nếu bạn cần lưu trữ tên một người mà lại sử dụng "một số như 1, 2, 3,..." để lưu trữ như vậy là sai về mặt ý nghĩa. Kế đến, có thể tên nhận được có dạng "Hải", "hẢi", "hảI", ... do có nhu cầu tên phải chuẩn dấn đến các tên này phải có dạng "Hải" cho nên bạn phải sử dụng một phương thức tác động đến các ký tự (để chuẩn hóa tên, dễ dàng cho việc xử lý). Nhưng ngay từ đầu ( đã chọn số ) => phương thức cũng không áp dụng được ( vì đối số nhận vào không phù hợp"...vv). Hậu quả có tính lan truyền - khó mà kiểm soát tốt chất lượng của chương trình.

Ý nghĩa và các phép toán tác động thường ít nhầm lẫn ( vì nó gần với tự nhiên bạn có thể liên hệ dễ dàng) nhưng đặc điểm miền giá trị có thể dễ bị nhầm. Kiểu số nguyên (integer - viết tắt là int) trong PHP có kích thước 32bit = 2^31, (đối với hệ máy tính 31bit, còn hệ 64bit sẽ là 9^18), hỗ trợ dấu (xác định số nguyên âm, nguyên dương - nhưng không hỗ trợ dạng không có dấu. Nếu bạn muốn dùng một dữ liệu ở dạng số nguyên mà kích thước lớn hơn 2^31 thì nó sẽ là số thực, PHP tự động chuyển từ số nguyên sang số thực nếu vượt quá miền giá trị => bạn phải thay đổi về cách thức làm việc ( đối với số thực chứ không phải số nguyên ) - một số ngôn ngữ hỗ trợ kiểu không dấu (unsigned) khi đó, giá trị lớn nhất cho số nguyên dương sẽ tăng gấp đôi nhưng kiểu integer trong PHP không hỗ trợ điều này, bạn phải sử dụng ở kiểu số thực.

Tuy chia ra các kiểu dữ liệu nhưng PHP cũng cho phép việc chuyển đổi giữa các kiểu dữ liệu để việc sử dụng biến trở nên linh hoạt, mềm dẻo - phát huy được nhiều sức mạnh, sát thực hơn với thực tế.

Xác định kiểu dữ liệu sẽ nhận được không phải chỉ với biến và hằng, bạn còn phải áp dụng cho phương thức và phép toán. Khi gọi một phương thức hay biểu diễn một phép toán, nó trở thành 1 câu lệnh (stament) trong ngôn ngữ lập trình, sẽ có giá trị nhận được hay còn gọi là giá trị trả về (return value) - khi áp dụng các phép toán hay các phương thức cho các giá trị này, các bạn cũng phải để ý đến kiểu dữ liệu của nó như khi làm việc với biến và hằng. Phương thức (function - hàm) và phép toán (operator) được trình bày chi tiết trong các bài sau.

Các kiểu dữ liệu cơ bản:

  • Số nguyên (integer)

  • Số thực (float)

  • Chuỗi (string)

  • Luận lý (boolean)

  • Kiểu NULL

Các kiểu dữ liệu phức hợp

  • Kiểu mảng (array)

  • Kiểu đối tượng (object)

  • Kiểu tài nguyên (resource)

Kiểu số nguyên (integer)

Kích thước 32 bit, miền giá trị  –2,147,483,648 tới +2,147,483,647, dùng cho số nguyên ( hệ 10 - decimal ), hệ 16 (base16 - hệ thập lục), hệ nhị phân(base02), Oxtal ( bắt đầu bằng các số 0). Ví dụ:

System Character Note
Binary ( nhị phân) 01 Lưu trữ giá trị phép toán logic
Decimal 0, 1, 23, 456 Số tự nhiên
Octal 0123, 012 Bắt đầu bởi số 0
Hex ( hệ thập base16) 0123456789abcde sử dụng cho HTML Colors

Kiểu dấu chấm động (float)

Kích thước 8 byte, miền giá trị: 2.2E–308 to 1.8E+308
Ví dụ 5: Khai báo biển kiểu chấm động trong php

3.14
+0.9e-2
-170000.5
54.6E42

Chuỗi (string)

Sẽ được tìm hiểu chi tiết trong bài chuỗi.
Ví dụ 6: Khai báo biển kiểu chuối trong php

$name = 'Tôi là Nam';
$name = "Tôi là Hà";
$sql = "select * from $table_name";

Kiểu Luận lý (boolean)

Nhận 2 giá trị là TRUE hoặc FALSE, với ý nghĩa: TRUE - chân trị đúng, FALSE: chân trị sai. Có thể nhận được từ các phép toán (gán, so sánh,...) hoặc từ các phương thức, ví dụ: kiểm tra một biến có tồn tại hay không bằng hàm isset() - nếu có thì trả ra TRUE, ngược lại trả ra FALSE
Ví dụ 7: Kiểu boolean trong php

$now = "Trời đang mưa";
$is_rain_stt = TRUE; //trời mưa là luận lý đúng
$a = 5; //phép gán
$b = 7; //phép gán
var_dump($a>b); // giá trị FALSE từ phép toán so sánh
var_dump($a<b); //giá trị TRUE từ phép toán so sánh
var_dump(isset($c)); //giá trị FALSE từ phương thức
var_dump(isset($a)); //giá trị TRUE từ phương thức

Kiểu NULL:

Để đánh dấu rằng biến rỗng - nghĩa là chưa có dữ liệu, một mảng chưa có phần tử,..., một chuỗi rỗng,...
Ví dụ 8: Kiểu NULL trong php

$a;
var_dump($a);

Kiểu mảng:

Sẽ được tìm hiểu chi tiết trong bài mảng

Câu lệnh (stament) - mã lệnh (code) - khối lệnh (code block)

Câu lệnh là một bước được biểu diễn từ thuật toán bằng ngôn ngữ lập trình thông qua các mã lệnh (code). Các mã lệnh này được viết theo cú pháp của ngôn ngữ lập trình. Nhiều câu lệnh có chung một mục đích được gom lại thành một nhóm được gọi là một khối lệnh. 

Ví dụ 9: Thuật toán tìm số lớn nhất trong 2 số bất kỳ a và b, biểu diễn bằng ngôn ngữ tự nhiên:
Bước 1: gán giá tri lớn nhất cho a
Bước 2: so sánh a với b, nếu a > b thì b là giá trị lớn nhất - nếu không (có nghĩa a là giá trị lớn nhất) thì qua bước 3
Bước 3: trả ra giá trị lớn nhất

Biểu diễn thuật toán này trong PHP - sẽ có đoạn code:

<?php
	$a = 5; //lệnh gán
	$b = 6;
	$max = $a; //gán giá trị lớn nhất cho biến $a
	if($max < $b) //nếu $b lớn hơn $max
	{ //bắt đầu 1 khối lệnh
		$max = $b; //thì $max = $b
	} //kết thúc một khối lệnh
	print $max; //trả ra giá trị lớn nhất
?>

Cũng như C - giữa các câu lệnh trong PHP phân cách nhau bởi dấu ; và PHP không phân biệt phải xuống dòng hay không xuống dòng, trong thực tế bạn nên viết mỗi câu lệnh trong 1 dòng. Các khối lệnh được bắt đầu bởi ký tự { và kết thúc bằng ký tự } . giữa các từ khóa, tên biến, khai báo tên biến, tên hằng không được phép có khoảng trắng, giữa các cặp thẻ đóng và mở code php.

Ví dụ (sai cú pháp): w h ile $ abc $a bc <? php . Nếu sai cú pháp trình thông dịch sẽ xuất ra thông báo lỗi: warming! là lỗi dạng cảnh báo - chương trình vẫn chạy được, Parser! lỗi cú pháp như quên dấu ; dấu "" hay quên truyền tham số cho hàm,...và lỗi thực thi Fatal!, lỗi ParserFatal , chương trình sẽ bị ngường lại. Và bạn phải sửa lỗi đó - công việc sửa lỗi hay còn gọi là Debug. 

File mã nguồn

Các đoạn mã các bạn gõ (kể cả ghi ra giấy - còn gọi là code giấy) thì đều cần phải lưu trữ ra 1 file để trình thông dịch có thể chạy đoạn mã này (execute). Với PHP mặc định file mã nguồn sẽ lưu với phần mở rộng là .php, ngoài ra các đoạn code php còn có thể lưu trong các file .html, .phtml

Các loại thẻ

Mã php được đặt trong một cặp thẻ (tag) - gọi là thẻ đóng (tag close) và thẻ mở ( tag open). Trình thông dịch sẽ dựa vào cú pháp này để phân biệt mã PHP. Mã lệnh PHP được quy định đặt trong 4 loại thẻ sau:

Loại chuẩn (Standand tags)

<?php
…. code
?>
Loại thu gọn (Short tags)

<?
…. code
?>
Script tags

<script language=''php''>
…. code
</script>
ASP tags

<%
…. code
%>

Trong đó loại thẻ chuẩn được mặc định hỗ trợ - được khuyên dùng. Loại thẻ thu gọn muốn sử dụng phải được bật (cấu hình trong php.ini) - mởi file php.ini tìm đến dòng short_open_tag, đổi giá trị Off thành On, tương tự cho ASP tags - ( loại này ít dùng ). Chủ yếu loại thẻ chuẩn và short tag được sử dụng nhiều. Với short tag, giúp viết code ngắn gọn hơn,  có thể in thẳng giá trị. 

Chú thích

Sử dụng chú thích - giúp làm cho đoạn code dễ hiểu, tiện lợi cho việc sử dụng về sau (theo thời gian bạn quên đi ý nghĩa các câu lệnh hoặc khối lệnh - đã có chú thích nhắc cho bạn nhớ) hoặc để chia sẻ với người khác. Trình thông dịch sẽ bỏ qua các đoạn chú thích này - nếu bạn đặt code php trong chú thích trình thông dịch cũng sẽ bỏ qua - bạn có thể sử dụng việc này cho việc test code, debug.

Ví dụ 10: code php với thẻ chuẩn (stand tags) và thẻ thu ngọn (short tag) - chú thích

<?php //thẻ mở
	$a = 5; //lệnh gán
	$b = 6;
	$max = $a; //gán giá trị lớn nhất cho biến $a
	if($max < $b) //nếu $b lớn hơn $max
	{ //bắt đầu 1 khối lệnh
		$max = $b; //thì $max = $b
	} //kết thúc một khối lệnh
	print $max; //trả ra giá trị lớn nhất
?> //thẻ đóng
<?= $a ?> //short tag in thẳng giá trị
//tương tự đoạn code sử dụng standand tag
<?php
	print $a;
?>
//chú thích một dòng
/*chú thích nhiều dòng
* dòng thứ 2 */
#chú thích dạng shell

Tổng Kết

Bài này giới thiệu các khái niệm căn bản nhất, các bạn cần nắm vững. Trong bài kế tiếp các bạn sẽ tìm hiểu về các phép toán, biểu thức.


Bài cùng chuyên mục:




Bình luận:


php php cơ bản kiểu dữ liệu