Nhập giá trị trong php

Bất kì một ngôn ngữ lập trình nào đều có khái niệm biến và hằng số và php cũng không ngoại lệ, đây là kiến thức nền tảng trong lập trình mà hầu như lập trình viên nào cũng phải học đầu tiên. Nên trong bài này chúng ta sẽ đi tìm hiểu khái niệm thế nào là biến và hằng số.

Nhập giá trị trong php

Nhập giá trị trong php

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. Chương trình "Hello World"

Khi bạn học một ngôn ngữ bất kì thì chương trình in ra màn hình chữ “Hello World!” luôn là bài tập đầu tiên mà bạn phải làm. Để xuất một chuỗi ra màn hình bạn dùng cú pháp lệnh sau:

Bài viết này được đăng tại [free tuts .net]

Ví dụ: Xuất ra dòng chữ “Chào Mừng Các Bạn Đến Với freetuts.net”

Bước 1: Bạn mở Server Vertrigo lên, nếu bạn chưa biết nó là gì thì đọc bài này “Hướng dẫn cài đặt Vertrigo Server ”.

Bước 2: Bạn tạo file hello.php nằm trong thư mục www của Server.

Bước 3: Theo quy tắc ở trên ta sẽ làm như sau:


Hoặc

Sự khác biệt ở 2 đoạn mã này là đoạn thứ nhất mình khai báo biến và dùng dấu nháy đơn để bao quanh chuỗi, còn đoạn thứ 2 mình dùng dấu nháy kép, cả 2 đều có kết quả tương đương nhau nhưng luận về tốc độ thì dấu nháy đơn sẽ chạy nhanh hơn dấu nháy kép vì với dấu nháy kép trình biên dịch sẽ mất thêm một bước kiểm tra chuỗi bên trong có biến nào không.

Bước 4: Mở trình duyệt gõ vào đường dẫn localhost/hello.php. Nếu bạn làm đúng thì kết quả nó sẽ xuất ra là “Chào Mừng Các Bạn Đến Với freetuts.net”.

2. Ghi chú

Trong dòng lệnh code php đôi khi ta muốn thêm những lời giải thích ý nghĩa của dòng lệnh đó để sau này nhìn vào dễ hiểu hơn. Nhưng với trình biên dịch thì nó sẽ chạy tất cả các đoạn code nằm bên trong thẻ mở và thẻ đóng ?>, nếu chúng ta gõ lung tung thì trình biên dịch sẽ báo sai vì không đúng với cú pháp PHP. Vì thế trước khi tìm hiểu biến và hằng số trong php chúng ta tìm hiểu cú pháp ghi chú trước.

PHP hỗ trợ cho chúng ta hai cách để ghi chú đó là:

  • Ghi chú cho 1 dòng: // noi dung can ghi chu
  • Ghi chú cho nhiều dòng: /*noi dung can ghi chu*/

Ví dụ:

3. Khai báo biến số trong php

Biến là một định danh, nó dùng để lưu trữ các giá trị và nó có thể dùng phép gán để thay đổi giá trị. Cú pháp của biến bắt đầu bằng dấu đô la $ và tiếp theo là các chữ, số, dấu gạch dưới. Ký tự đầu tiên của tên biến phải là chữ hoặc là dấu gạch dưới, không được là số.

Ví dụ:

PHP là một ngôn ngữ có phân biệt chữ hoa chữ thường. Ví dụ: $sinhvien khác $SinhVien

Gán giá trị cho biến

Để gán giá trị cho biến ta dùng toán tử phép gán =.

Ví dụ:

4. Hiển thị giá trị của biên ra màn hình

Thay vì xuất trực tiếp chuỗi thì ta xuất giá trị của biến ra màn hình.

Ví dụ:

5. Khai báo hằng

Hằng cũng là một biến nhưng bạn không thể thay đổi giá trị của nó. Tuy nhiên cách khai báo biến và hằng số thì lại khác nhau.

Cú Pháp: define(‘ten_hang’, ‘gia_tri’);

Trong đó:

  • define: hàm tạo biến hằng
  • ten_hang: là tên biến hằng
  • gia_tri: giá trị của hằng

6. Lời kết

Trong bài này tôi hy vọng các bạn hiểu được cách khai báo và sử dụng biến và hằng số trong ngôn ngữ php, đây là nền tảng để các bạn có thể theo dõi các bài tiếp theo nên tôi mong các bạn nắm vững trước khi next qua bài mới nhé. Bài tiếp theo chúng ta sẽ tìm hiểu các kiểu dữ liệu trong php.

AN TÂM ĐỨC - ĐÀO TẠO LẬP TRÌNH & THIẾT KẾ WEBSITE

Với chủ trương giúp các bạn không bị rơi vào “mê hồn trận” của những đoạn mã trộn lẫn lộn HTML+CSS+JavaScript+SQL+PHP, tôi cố gắng không đồng nhất việc nhập dữ liệu vào PHP với việc truyền dữ liệu thông qua trình duyệt (cũng như việc xuất dữ liệu ra màn hình với việc “trả về dữ liệu HTML cho trình duyệt”).

Hiểu điều này sẽ rất có lợi cho các bạn ở bài học kế, khi chúng ta bắt đầu “nhúng” mã PHP vào trong trang web.

Để cho phép người dùng đưa một giá trị từ bàn phím vào chương trình PHP, các bạn sử dụng cách thức như sau:


echo ‘Nhap vao mot gia tri bat ky: ‘;
$data = fgets(fopen(‘php://stdin’,'r’));echo ‘Ban vua nhap vao gia tri:’,”\n”;
echo $data;
?>

Dòng màu cam là cú pháp để chờ người dùng nhập dữ liệu vào từ bàn phím (kết thúc bởi phím Enter). Bạn chưa và không cần tìm hiểu đoạn mã phía sau dấu = đâu, chỉ cần chú ý$data là tên biến nhận giá trị mà người dùng nhập vào. Bạn có thể thay $data bằng bất cứ tên biến nào mà bạn thích. Kết quả chạy chương trình:

Ví dụ sau minh hoạ chương trình tính tổng 2 số bất kì nhập vào từ bàn phím:


echo ‘Chuong trinh tinh tong 2 so bat ky’,”\n”;
echo ‘Nhap so thu nhat A = ‘; $a = fgets(fopen(‘php://stdin’,'r’));
echo ‘Nhap so thu hai B = ‘; $b = fgets(fopen(‘php://stdin’,'r’));
echo $a, ‘ + ‘, $b, ‘ = ‘, $a+$b;
?>

Kết quả chạy chương trình như sau:

Nhập giá trị trong php

Để bắt đầu, chúng ta cùng nghiên cứu thắc mắc của bạn Phương (phù thuỷ lãng quên thời gian) trong bài tập trước:

Khi em check thủ công thế này
$a=aaakkkdfddd;
var_dump($a);
?>
thì php vẫn chạy tốt

nhưng khi check thế này
$a=gfgdigdj gbhdug;
var_dump($a);
?>
thì php báo lỗi check tương tự với các ký tự đặc biệt khác như ~@@#$% thì nó cũng báo lỗi

Để trả lời câu hỏi này, bạn Phương cần biết đến khái niệm “hằng”. Ở bài học trước, chúng ta đã nghiên cứu về biến và cách gán giá trị cho biến ($a = 5 chẳng hạn).

Trong khi biến là những giá trị biến thiên, có thể thay đổi được thì hằng là một giá trị cố định, không thay đổi được sau lần định nghĩa và gán giá trị đầu tiên. Hằng phân biệt với biến ở chỗ không có dấu $ đằng trước.

Để định nghĩa một hằng, các bạn dùng cú pháp như sau:

define(Pi, 3.141592654);

Nhập giá trị trong php

Trong đó Pi là tên Hằng và 3.141592654 là giá trị của Hằng.

Tương tự như với biến, tên Hằng phân biệt chữ Hoa chữ thường và kiểu dữ liệu của Hằng phụ thuộc vào giá trị mà nó đang nắm giữ.

Nhập giá trị trong php

Dòng 3 định nghĩa Hằng tên Pi (P viết Hoa và i viết thường), vì thế chỉ có truy xuất Pi mới cho ra giá trị 3.141592654 trong khi các truy xuất pi, pI và PI cho ra giá trị trùng với tên hằng.

Đó là vì, khi bạn truy xuất đến một “hằng” chưa được định nghĩa và gán giá trị, PHP sẽ trả về đúng giá trị của chuỗi ký tự mà bạn đang truy xuất.

Đó là lý do trong đoạn code mà bạn Phương mang ra “thí nghiệm”:


$a=aaakkkdfddd;
var_dump($a);
?>

PHP sẽ diễn dịch rằng bạn Phương muốn khai báo một biến $a và gán cho biến $a này giá trị của một hằng tên là aaakkkdfddd. Tuy nhiên, do aaakkkdfddd chưa được định nghĩa từ trước như một tên hằng, nên PHP trả về chuỗi aaakkkdfddd và gán giá trị chuỗi này cho biến $a. Tức là, đoạn code trên của Phương sẽ tương đương với:


$a=’aaaakkkddd’;
var_dump($a);
?>

Tôi hiểu bạn Phương đang muốn thử gán cho $a một chuỗi nhưng bạn quên đưa dấu nháy đơn ‘ hoặc dấu nháy kép vô phần định nghĩa chuỗi. Nhưng PHP – như tôi đã nói – không đủ thông minh để phán đoán bạn muốn làm gì, nó chỉ đơn thuần thông dịch đúng từ trên xuống từ trái qua phải và vô tình đoạn code của bạn không bị “báo lỗi” khai báo sai cú pháp dữ liệu string!

Tuy nhiên, khi bạn viết tiếp thế này:


$a=gfgdigdj gbhdug;
var_dump($a);
?>

Thì PHP báo lỗi. Vì nó đã không “vô tình đúng” như ở ví dụ trên nữa rồi. Giả sử chúng ta thêm một dấu ; vào vị trí khoảng trắng thì chương trình sẽ hết lỗi ngay:

Nhập giá trị trong php

Do $a=gfgdigdj; được hiểu như một phép gán giá trị của hằng gfgdigdj vào cho biến $a còngbhdug; được coi như một biểu thức… không làm gì hết! (Giống như ở bài 2, tôi đề cập việc bạn có thể ghi 1; $a; $b; thì PHP vẫn coi là đúng, nó đơn thuần sẽ “chạy qua” mà không làm gì cả).

Tại sao PHP đã có biến lại còn phải “đẻ ra” hằng? Sau này học về hàm (funtions) bạn sẽ biết sự khác nhau giữa hằng và biến khi được triệu gọi trong và ngoài hàm. Còn hiện tại, tôi chỉ đơn thuần thông qua thắc mắc của bạn Phương để giới thiệu khái niệm Hằng.

Là một khái niệm rất lạ của PHP, tôi không biết phải định nghĩa thế nào cho chuẩn xác, nhưng qua một ví dụ đơn giản thế này, các bạn sẽ hình dung được:


$a = ‘MeoMun’;
$MeoMun = ‘Nguyen Ngoc Long’;
echo ‘$a = ‘,$a,’; $$a = ‘,$$a;
?>

Nhập giá trị trong php

Có thể hiểu rằng khi gặp $$a, PHP sẽ trả về giá trị của $a trước nhất. Khi này

$$a = ${$a} = ${MeoMun} = $MeoMun

Mà $MeoMun = ‘Nguyen Ngoc Long’ nên giá trị cuối cùng chúng ta nhận được sẽ làNguyen Ngoc Long

Mới nhìn thì bạn sẽ thấy rằng khái niệm này có vẻ hơi rắc rối và vô nghĩa, nhưng nó lại vô cùng hữu ích trong một vài trường hợp (ví dụ sau này học nâng cao, bạn có thể dùng biến-biến để phát sinh phương thức động của một đối tượng).

Bài tập 5.1 Hãy giải thích tại sao trong ví dụ tính tổng 2 số, khi hiển thị kết quả ra màn hình, dấu + sau 34 và dấu = sau 56 lại bị rơi xuống hàng dưới? Hãy sửa lại source code để kết quả in ra “đẹp hơn” như sau:

Nhập giá trị trong php

Bài 5.2 Viết chương trình thực hiện các việc sau:

  1. Định nghĩa một hằng tên là Pi = 3.141592654
  2. Cho người dùng nhập vào một số giá trị bất kì
  3. Hiển thị thông tin tính diện tích hình tròn có bán kính bằng với giá trị mà người dùng vừa nhập vào

Bài 5.3 Viết chương trình nhập họ tên và ngày, tháng, năm sinh của người sử dụng (4 lần nhập riêng rẽ), sau đó in ra màn hình ngày tháng năm sinh của họ dưới dạng D/M/YYYY và cho biết họ hiện được bao nhiêu tuổi. Ví dụ người dùng tên Long, ngày sinh = 4; tháng = 11; năm = 1983, viết ra “Xin chào Long, bạn sinh ngày 4/11/1983. Năm nay bạn được 27 tuổi”.

Bài 5.4 Viết chương trình tính thể tích hình lập phương với số đo một cạnh nhập từ bàn phím.