Khác biệt giữa bản sửa đổi của “Trang Chính”

Nội dung được xóa Nội dung được thêm vào
nKhông có tóm lược sửa đổi
Hằng và biến trong PHP
Dòng 1:
Hằng và biến trong PHP
__NOTOC__ __NOEDITSECTION__
(Thứ Hai, 20/04/2009-10:31 AM)
<div style="width: 45%; float: left; vertical-align: top; padding: 10px; padding-top: 20px;">
Nếu các bạn chưa từng học lập trình, chắc các bạn đang còn xa lạ với hằng và biến.
1. Hằng và biến
Nếu các bạn chưa từng học lập trình, chắc các bạn đang còn xa lạ với hằng và biến.
- Giống như trong toán học, một hằng số xác định một giá trị duy nhất thông qua tên của hằng số, trong Tin học cũng vậy. Môt hằng số xác định một giá trị duy nhất trong toàn bộ chương trình. Người ta có thể sử dụng giá trị này thông qua tên của hằng số đó trong chương trình
- Tương tự đối với biến. Một biến trong lập trình được sử dụng để lưu trữ một giá trị nào đó thông qua tên biến. Sở dĩ người ta gọi nó là biến, vì không như hằng số (giữ nguyên giá trị trong toàn bộ quá trình chạy chương trình), người ta có thể thay đổi giá trị của biến số thông qua các phép gán.
 
Để tạo điều kiện dễ dàng trong quá trình phân tích dữ liệu, PHP quy định bất kỳ từ nào có dấu $ ở trước đều là tên của biến. Ví dụ:
<!-- Masthead -->
$ten xác định một biến có tên là ten
<div id="ViBSearch" style="background-repeat: no-repeat; background-position: top left; background-color: #f9f9fb; color: black; border: 1px solid #cccccc; padding: 7px; margin-bottom: 20px;">
$custome_name: xác định một biến có tên là $custome_name
<imagemap>
Hình:Wikibooks-logo.svg|giữa|150x150px|Wikibooks tiếng Việt
default [[Trang Chính|Wikibooks tiếng Việt]]
desc none
</imagemap>
<div style="width: 100%; text-align: center; margin-left: auto; margin-right: auto; margin-top: 1em;">
<inputbox>
type=search2
buttonlabel=Tra cứu
width=30
break=no
bgcolor=#ffffff
</inputbox>
</div>
</div>
 
Bạn cần biết rằng tên biến là một chuỗi các ký tự chỉ bao gồm các chữ số, chữ cái (a..z) và dấu gạch dưới ( _ ). Và PHP quy định phân biệt các biến chữ hoa và chữ thường là khác nhau. CHẳng hạn $ab và $Ab là 2 biến hoàn toàn khác nhau. Một điểm cần lưu ý khác là không được đặt tên biến bắt đầu bằng các chữ số (0.. 9)
===[[Wikibooks:Chào mừng người mới đến|Hoan nghênh]] bạn đã đến với '''{{SITENAME}} tiếng Việt'''!===
 
Do quy định các chuỗi ký tự có chứa dấu $ ở trước là một tên biến, nên PHP tự động khởi gán giá trị của các biến này là rỗng (đối với kiểu dữ liệu văn bản) hoặc 0 đối với kiểu dữ liệu số. Bạn sẽ được biết đến các kiểu dữ liệu sau này.
Đây là “tủ sách” chuyên môn về [[Wikibooks:Sách giáo khoa là gì?|sách giáo khoa]] có [[Wikibooks:Quyền tác giả|nội dung mở]] và thuộc sở hữu cộng đồng. Tủ sách này có mục đích bao gồm các môn học&nbsp;– từ [[:Thể loại:Cơ học|cơ học]] đến [[:Thể loại:Văn học|văn học]].
 
Để gán giá trị cho các biến, bạn sử dụng câu lệnh gán như sau:
Dự án được bắt đầu từ tháng 7 năm 2004 do công sức đóng góp của [[Wikibooks:Cộng đồng|nhiều người ở khắp mọi nơi]], '''bạn''' cũng có thể tham gia. Hiện giờ mới chỉ có [[Đặc biệt:Listusers|{{NUMBEROFUSERS}} thành viên]] và [[Đặc biệt:Statistics|{{NUMBEROFARTICLES}} trang sách]] thôi, và nhiều sách chưa được viết đầy đủ. Rất mong bạn cùng [[Trợ giúp:Sửa đổi trang|viết trang mới]] hay thực hiện các đóng góp khác như nhận xét ở [[Trợ giúp:Trang thảo luận|trang thảo luận]], sửa chính tả, thêm ví dụ và bài tập, thêm [[Trợ giúp:Hình ảnh|hình ảnh]] minh họa…
$tên_biến = giá trị cần gán;
 
Ví dụ:
===Trợ giúp===
$nam_sinh=1980;
{{Trợ giúp}}
$ho_ten="CMXQ";
 
Các bạn chú ý đến 2 ví dụ tôi nhập dữ liệu: một cái thì nằm trong cặp dấu ngoặc kép chỉ thị biến đó chứa dữ liệu theo kiểu xâu, còn một cái thì không nằm trong cặp dấu ngoặc kép chỉ thị biến đó chứa dữ liệu kiểu số. Bạn sẽ biết chi tiết hơn ở ngay sau đây:
<div style="text-align: right;">[[Trợ giúp:Mục lục|Trợ giúp]]&nbsp;– [[Wikibooks:Cộng đồng|Cổng cộng đồng]]</div>
 
2. Các kiểu dữ liệu trong PHP
===Tin tức===
{{Tin tức}}
 
PHP có 3 kiểu dữ liệu cơ bản: Integer, double và string. Ngoài ra còn một số kiểu dữ liệu khác, đượ xây dựng dựa trên các kiểu dữ liệu cơ bản trên, như mảng, object, mà chúng ta sẽ đề cập đến sau. Tất cả các biến đều được chỉ định kiểu dữ liệu, và như chúng ta đã nói ở trên, giá trị của chúng có thể bị thay đổi trong quá trình sử dụng.
</div>
<div style="width: 45%; float: right; vertical-align: top; padding: 10px;">
==={{SITENAME}} theo chủ đề===
{{Chuyên ngành}}
</div>
 
Kiểu giá trị Integer sử dụng 4 byte của bộ nhớ. Đây là kiểu giá trị nguyên (không phải là số thực) và có giá trị nằm trong khoảng từ -2 tỷ đến 2 tỷ. Kiểu dữ liệu double là kiểu dữ liệu số thực, cho phép chứa các số thưc. Kiểu String được sử dụng để chứa các dữ liệu như là các ký tự văn bản, ký tự đặc biệt và các chữ số. Dữ liệu kiểu string được đặt trong cặp dấu ngoặc kép ("") chỉ định một xâu (hay còn gọi là chuỗi ký tự).
<div style="clear: both; font-size: larger; padding-top: 1em; text-align: center">
[[Wikibooks:Chỗ thử|Chỗ thử]]&nbsp;– [[Trợ giúp:Sửa đổi trang|Viết trang mới]]&nbsp;– [[Wikibooks:Guestbook for non-Vietnamese speakers|Guestbook]]&nbsp;– [[Wikibooks:Câu thường hỏi|Hỏi đáp]]<!-- &nbsp;– [[Wikibooks:Liên lạc|Liên lạc với {{SITENAME}}]] -->
</div>
 
Ví dụ:
==Dự án liên quan==
2: Kiểu integer;
2.0: kiểu double
"2": Kiểu xâu
"2 gio": Kiểu xâu
 
3.Định nghĩa hằng
{{SITENAME}} trực thuộc Quỹ Hỗ trợ [[w:Wikimedia|Wikimedia]], một tổ chức phi lợi nhuận đã đăng ký tại tiểu bang [[w:Florida|Florida]], [[w:Hoa Kỳ|Hoa Kỳ]] theo điều lệ 501(c)(3), cho phép [[Wikimedia:Deductibility of donations|trừ thuế]] những khoản [[Wikimedia:Quyên góp|đóng góp]]. Wikimedia cũng đồng thời điều hành vài dự án [[w:wiki|wiki]] khác cũng [[Wiktionary:Phiên bản ngôn ngữ|bằng nhiều thứ tiếng]], có [[Wikipedia:Quyền tác giả|nội dung mở]], thuộc sở hữu cộng đồng:
 
Hàm define() được sử dụng để tạo một hằng số:
{{Liên quan Wikibooks}}
Hàm này có cấu trúc sau:
define ("tên_hằng","giá trị của hằng");
Ví dụ:
define ("COMPANY","NS Co.Ltd");// Định nghĩa hằng COMPANY với giá trị là "NS Co Ltd"
define ("diem_so",4.5);// định nghĩa hằng diem_so với giá trị là 4.5 (hic... thi lại );
 
Sau khi một hằng số được tạo ra, ta có thể sử dụng chúng thay cho giá trị của chúng:
Nếu bạn cảm thấy hài lòng với {{SITENAME}}, hay bất cứ dự án liên quan nào, xin bạn vui lòng [[Wikimedia:Quyên góp|hỗ trợ tài chính]] cho Wikimedia. Phần lớn số tiền đóng góp sẽ dùng để mua máy móc và bắt đầu các [[m:Complete list of Wikimedia projects#Proposed projects|dự án]] [en] mới.
echo ("Tên công ty: ".COMPANY);
Điều này tương đương với echo ("Tên công ty: NS Co Ltd");
 
4. Một số hằng xây dựng sẵn (built in constant)
[[Thể loại:Tất cả| ]]
 
PHP có chứa một số hằng được xây dựng sẵn. TRUE và FALSE là 2 hằng đã được dựng sẵn với chỉ định true (1) và false (=0 hoặc một xâu rỗng)
[[aa:]]
 
[[af:]]
Hằng số PHP_VERSION chỉ định phiên bản của bộ phân tích PHP mà bạn đang dùng hiện tại. Hằng PHP_OS chỉ định hệ điều hành server mà trình phân tích PHP đang chạy.
[[ak:]]
 
[[als:]]
echo (PHP_OS); // in ra màn hình "Linux" (ví dụ)
[[ang:]]
 
[[ar:]]
_FILE_and_LINE_ trả về tên của đoạn script (đoạn mã nhúng) đang được phân tích tại dòng hiện thời trong đoạn mã script.
[[as:]]
 
[[ast:]]
PHP còn cung cấp một số hàm để thông báo lỗi như E_ERROR, E_WARNING, E_PARSE và E_NOTICE.
[[ay:]]
 
[[az:]]
Ngoài ra, PHP còn cung cấp một số biến cung cấp thông tin về môi trường PHP đang sử dụng. Để xem các thông tin này,bạn có thể dùng hàm phpinfo() như sau:
[[ba:]]
 
[[be:]]
<HTML>
[[bg:]]
<!-- phpinfo.php-->
[[bi:]]
<BODY>
[[bm:]]
<?php
[[bn:]]
phpinfo();
[[bo:]]
?>
[[bs:]]
</BODY>
[[ca:]]
</HTML
[[ch:]]
5. Lừa kiểu và ép kiểu dữ liệu
[[co:]]
 
[[cs:]]
Như chúng ta đã biết, tất cả các biến PHP đều có kiểu dữ liệu riêng. Kiểu dữ liệu của biến sẽ được tự động xác định bởi giá trị đặt vào biến
[[cv:]]
 
[[cy:]]
$a=1 // $a là kiểu integer
[[da:]]
$a=1.2 // Bây giờ, nó là kiểu double
[[de:]]
$a="1" // Và bây giờ nó là kiểu string
[[el:]]
 
[[en:]]
a) Chuyển kiểu chuỗi và lừa kiểu dữ liệu
[[eo:]]
 
[[es:]]
Nếu bạn làm các thao tác tính toán số trên một chuỗi, PHP sẽ tính toán chuỗi như là một số. Điều này được biết đến với cái tên gọi là "chuyển kiểu chuối (String conversion), mặc dù giá trị chuỗi của nó có thể không cần phải thay đổi. Trong đoạn ví dụ sau, biến $str được xác định là một chuỗi:
[[et:]]
$str="756300 không có";
[[eu:]]
Nếu chúng ta cố cộng thêm một giá trị nguyên là 3 vào biến $str, biến $str sẽ tự động tính với số nguyên 756300:
[[fa:]]
$x=4+$str;//$x =756304
[[fi:]]
 
[[fr:]]
Nhưng bản thân giá trị của biến $str không thay đổi
[[fy:]]
 
[[ga:]]
echo ($str); // In ra màn hình chuỗi "756300 không có"
[[gl:]]
 
[[gn:]]
Chuyển kiểu chuỗi phải tuân theo 2 nguyên tắc sau:
[[got:]]
- Chỉ những chuỗi bắt đầ là một xâu các chữ số. Nếu chuỗi bắt đầu bằng một giá trị số hợp lệ, chuỗi này sẽ được xác định như giá trị của nó, trong trường hợp khác, nó sẽ trả về 0. VD: chuỗi "35 tuổi" sẽ được ước lượng là 35, nhưng chuỗi "tuổi 35" sẽ chỉ xác định giá trị 0.
[[gu:]]
 
[[he:]]
- Một chuỗi sẽ chỉ được xác định như là một giá trị kiểu double nếu giá trị kiểu double được miêu tả bao gồm toàn bộ chuỗi. Chuỗi "3.4", "-4.2" sẽ được ước lượng như giá trị thực 3.4 và -4.2. Nếu một ký tự không phải là ký tự kiểu số thực được đưa vào chuỗi, giá trị của chuỗi đó sẽ được ước lượng như là một số nguyên. Chuỗi "3.4 dollar" sẽ thành số nguyên 3.
[[hi:]]
 
[[hr:]]
Trong việc cộng với chuỗi chuyển kiểu, PHP sẽ thực hiện "lừa kiểu" giữa 2 kiểu số. Nếu bạn thực hiện một phép toán số học giữa kiểu thực và kiểu nguyên, giá trị sẽ là số thực
[[hu:]]
 
[[hy:]]
$a=1 //$ a là một số nguyên
[[ia:]]
$b= 1.0 //$b là số thực
[[id:]]
$c=$a+$b //$c là kiểu số thực , = 2.0
[[ie:]]
$d = $c+"6th" //$d là kiểu số thực = 8.0
[[is:]]
 
[[it:]]
Ép kiểu dữ liệu
[[ja:]]
 
[[ka:]]
Ép kiểu dữ liệu cho phép bạn thay đổi kiểu dữ liệu của biến
[[kk:]]
 
[[km:]]
$a=11.2// $a là kiểu thực
[[kn:]]
$a=(int)$a// Bây giờ, $ a là kiểu nguyên, giá trị = 11
[[ko:]]
$a= (double) $a// Bây giờ $a lại trở về kiểu thực = 11.0
[[ks:]]
$b= (string)$a// $b là giá trị kiểu chuỗi ="11"
[[ku:]]
 
[[ky:]]
Ngoài ra, chúng ta còn được phép ép kiểu (array) và (object)
[[la:]]
 
[[lb:]]
(integer) tương đương với (int); (fload) và (real) tương đương với (double)
[[ln:]]
 
[[lt:]]
6. Một số hàm tiện ích khác
[[lv:]]
 
[[mg:]]
PHP có một số hàm hỗ trợ làm việc với các biến
[[mi:]]
 
[[mk:]]
- Hàm gettype($ten_bien) xác định kiểu của biến. Nó sẽ trả về một trong các giá trị: "integer", "double", "string", "array", "object", "class", "unknown type" (Chúng ta sẽ tìm hiểu kỹ hơn vể mảng (array) và kiểu đối tượng (object) ở các bài sau.
[[ml:]]
Ví dụ:
[[mn:]]
echo(gettype($name));
[[mr:]]
 
[[ms:]]
- Hàm settype($ten_bien,"kieu_du_lieu") sẽ đặt kiểu dữ liệu cho biến $ten_bien. Kiểu dữ liệu được viết dưới dạng một chuỗi, và có thể có một trong các kiểu sau: "integer", "double", "string", "array", "object". Nếu kiểu dữ liệu không được đặt, giá trị false sẽ được trả về, còn nếu thành công, nó sẽ trả về giá trị true.
[[my:]]
 
[[na:]]
VD:
[[nah:]]
$a=7.5; //$a là kiểu thực
[[nds:]]
settype($a,"integer"); // bây giờ nó là một số nguyên có giá trị 7
[[ne:]]
 
[[nl:]]
- Hàm isset($ten_bien) được sử dụng để xác định xem biến $ten_bien đã đặt một giá trị nào đó hay chưa. Nếu biến đó đã có giá trị, hàm trả về true. Trong truờng hợp ngược lại, hàm trả về giá trị false;
[[no:]]
- Hàm unset($ten_bien) được sử dụng để huỷ bỏ biến $ten_bien, giải phóng bộ nhớ bị chiếm dụng của biến đó.
[[oc:]]
[[pa:]]
[[pl:]]
[[ps:]]
[[pt:]]
[[qu:]]
[[rm:]]
[[ro:]]
[[ru:]]
[[sa:]]
[[se:]]
[[si:]]
[[simple:]]
[[sk:]]
[[sl:]]
[[sq:]]
[[sr:]]
[[su:]]
[[sv:]]
[[sw:]]
[[ta:]]
[[te:]]
[[th:]]
[[tk:]]
[[tl:]]
[[tr:]]
[[tt:]]
[[ug:]]
[[uk:]]
[[ur:]]
[[uz:]]
[[vo:]]
[[wa:]]
[[xh:]]
[[yo:]]
[[za:]]
[[zh-min-nan:]]
[[zh:]]
[[zu:]]