chap 002

Màu nền
Font chữ
Font size
Chiều cao dòng

 

PHP tuy dễ dàng sinh ra mã HTML nhưng cũng có thể chèn vào giữa nội dung file HTML.

Mã nguồn: [Chọn]

<html>

<head>

<title>Ví dụ php</title>

</head>

<body>

<?php

echo 'Đây là text được sinh ra bởi PHP';

?>

</body>

</html>

Để đánh dấu nội dung PHP, ta đặt code PHP trong cặp <??>

bạn copy đoạn mã trên, save lại với tên phpcode.php chẵn hạn, lưu ý là .php, đặt nó vào trong thư mục www của websever và mở trình duyệt chạy thử nhé.

File php có nhiều phần mở rộng khác nhau như là .php3, .php4, nhưng cứ .php thôi cho nó khoẻ

nếu bạn đã cài đặt websever như mình hướng dẫn và đặt nó vào đúng chỗ + không quên khởi động nó lên thì khi nhấp vào đây.

http://localhost/phpcode.php

Một trang sẽ được hiện ra. hãy thử xem source nguồn của nó, bạn sẽ không thể tìm thấy các cặp <??> cũng như từ echo, chỉ những HTML và text bình thường.

Nếu mà gặp trục trặc ở phần này, các bạn hạy viết bài viết trả lời thắc mắc để nhận được sự hỗ trợ thêm.

Đọc thêm: http://hocvui.net/php/trang-php-dau-tien.html#ixzz1Z41KcjVR

Hocvui.net - học những điều cơ bản

Đặt tên biến PHP

Tháng Sáu 24, 2009, 09:17:27 AM gửi bởi nvcnvn

Trước tiên, dành cho các bạn mới bước chân vào lĩnh vực lập trình:

Biến là đại lượng được đặt tên, dùng để lưu giữ gái trị và gái trị có thể thay đổi trong quá trình thực hiện chương trình.

SAK 11

Quả thật khái niệm được coi là cơ bản này khá là mơ hồ cho những người mới bắt đầu như chúng ta, nhưng các bạn sẽ từ từ hiểu rỏ mọi vấn đề khi tiếp tục đi sâu vào!

Một ví dụ đời thường:

Bạn có một bao thuốc lá, bạn lấy cây viết đặt tên nó là a, bạn nhét 10,000 VND vào bao thuốc lá, thì lúc này bao thuốc là có giá trị là 10,000 VND (tất nhiên là không tính tiền cái bao hihihi ) rồi một hồi sau, bạn lấy 10,000 ra, bỏ vào tờ 5,000 thì nó có gái trị 5,000....

hay là x,y,z trong một bài toán, ta cho x=5, y=6, z=x+y thì Z=11

Còn trong lập trình php

Để đánh dấu đây là một biến, ta dùng ký tự $ và một số ký tự tiếp theo, các ký tự kiếp theo cần tuân thủ một số nguyên tắc như sau:

Quy tắc đặt tên biến

Có 3 quy tắc:

    * Ký tự bắt đầu phải là một chữ cái, còn các ký tự tiếp theo có thể là chữ số, gạch dưới, chữ cái. Ngoài mấy thứ kể trên ra, bạn không nên thêm bết cứ thứ gì khác vào tên biến!

    * Không được có khoản trắng

    * Các biến phân biệt chữ hoa chữ thừơng, vì thế ANH sẽ khác với Anh cũng như anh, để tránh rắc rối, ta nên dùng chữ thường cho tất cả tên biến và dùng dấu _ để phân cách thay cho khoảng trắng

Một số ví dụ:

Các tên biến không hợp lệ:

$11a2               $lop 11

Các tên biến hợp lệ:   

$lop11A2           $lop_a2

Bài sau sẽ nói thêm về cách gán giá trị cho biến.

Đọc thêm: http://hocvui.net/php/bien-php.html#ixzz1Z41VjF5j

Hocvui.net - học những điều cơ bản

Biến và kiểu giá trị

Tháng Sáu 24, 2009, 09:30:39 AM gửi bởi nvcnvn

Trước tiên, mình xin trình bày với các bạn 3 kiểu giá trị cơ bản nhất

Boolean

Boolean là gái trị logic có hai giá trị là TRUE hoặc FALSE.(TRUSE có nghĩa là đúng, FALSE là sai)

Số

là loại giá trị dùng đễ tính toàn đó, đừng nói bạn không biết số là gì nha!

Số thì có số động, số nguyên......

Chuỗi

Chuỗi là các kí tự bảng chữ cái + kí tự đặc biệt + số, nói chung là bất kì cái gì mà ta viết ra trên bàng phím được, thì là chuỗi!

Câu lệnh gán:

Lệnh gán là 1 trong những lệnh cơ bản nhất của ngôn ngữ lập trình, trong javascript có dạng:

<tên biến>=<biểu thức>;

Nếu gán biến với giá trị chuỗi:

<tên biến>="<biểu thức>";

cần có thêm cặp dấu nháy.

VD:

ta gán biến a và b với các giá trị như sau:

$a=1;

$b="1";

$a sẽ mang gái trị số 1, còn $b mang giá trị chuỗi "một" ==> đặt bên trong cặp dấu nháy là chuỗi!

Gán biến với giá trị Boolean

VD:

$a=TRUE;

Gán như thế này có nghĩa là $a mang giá trị ĐÚNG.

Chú ý là nếu bạn gán $a như thế này:

$a="TRUE";

Có nghĩa là bạn đơn thuần gán cho nó một chuỗi gồm các chữ cái TRUE

Đọc thêm: http://hocvui.net/php/bien-va-gia-tri.html#ixzz1Z41yLYQ1

Hocvui.net - học những điều cơ bản

biểu thức và các toán tử cơ bản

Tháng Sáu 24, 2009, 09:47:02 AM gửi bởi nvcnvn

Biểu thức:

Trong lập trình đều có một số quy tắc chung, ví dụ như việc ưu tiên tính toán với các phép toán +,-,*,/.

hay là ưu tiên với biểu thức trong dấu (). Mọi quy tắc số học về mặt này đều đúng trong php

1.Toán tử số học (+[cộng], -[trừ], *[nhân], /[chia] , %[chia lấy dư], ++[tự tăng 1], --[tự giàm 1])

    + : Phép cộng.(khỏi giả thích)

     - : Phép trừ.(khỏi giả thích)

    * : Phép nhân.(khỏi giả thích)

     /: Phép chia.(khỏi giả thích)

  % : Phép chia lấy phần dư.VD: 5/3 được 1 dư 2 thì 5%3=2,

  ++: Phép tăng một đơn vị.VD: 1++ = 2;   5++ = 6

    --: Phép giảm một đơn vị.VD:1-- = 0; 9  -- = 8

2.Toán tử so sánh

     == : So sánh bằng.

       > : So sánh lớn hơn.

       < : Nhỏ hơn.

    >= : So sánh lớn hơn hoặc bằng.

    <= : Nhỏ hơn hoặc bằng.

     != : So sánh khác

Chú ý: chỉ có <= (bé hơn hoặc bằng) chứ không có =<(bằng hoặc bé hơn, cũng như thế đối với >=, không có chuyện =>)

3.Toán tử logic

     && (and): Giá trị đúng khi cả hai cùng đúng. VD: nếu (anh yêu em) (em yêu anh) thì cưới ngay .

ta chỉ cưới ngay khi hai điều kiện trong ngoặc cùng đúng.

        || (or) : Giá trị đúng nếu một trong 2 đều đúng. VD:nếu (em đau khổ) hoặc (anh đau khổ) thì chia tay  !

Chỉ cần một trong hai điều kiện đúng là chia tay

Đối với chuỗi

Toán tử . tượng trưng cho việc nối hai chuỗi lại.

VD:

$a="I am ";

$b="Nguyen";

$c=$a.$b;

thì c có giá trị là chuỗi "I am Nguyen"

Đọc thêm: http://hocvui.net/php/bieu-thuc-va-cac-toan-tu-co-ban.html#ixzz1Z42OUsuz

Hocvui.net - học những điều cơ bản

vài toán tử trong php

Tháng Tư 08, 2009, 05:17:29 PM gửi bởi volam

Toán tử trong PHP cũng giống như trong các ngôn ngữ khác .Toán tử được sữ dụng khai báo trên tầm vực script sẽ có tầm vực trên toàn script .Biến khai báo trong hàm ( function ) sẽ có tác dụng trên tầm vực của hàm đó .

1.Các phép toán học

========================================

Toán tử        Tên             Ví dụ 

-----------------------------------------

+            cộng             $a+$b;

-             trừ                $a-$b;

*            Nhân            $a*$b;

/             chia              $a/$b;

%           Modulo          $a%$b;

========================================  

2.Các phép toán nối chuỗi

Các phép toán nối chuỗi là dấu "."

Ví dụ :

<?

$a="http://www.";

$b="library";

$b=$b."php.net";

$a=$a.$b;

echo $a; // bạn test xem

?> 

3.Các phép toán trả về từ gán

Sữ dụng phét toán trả về phép toán học khác .

<?

$a="http://www.";

$b="libraryphp";

$a=$a.$b;

echo $a.($c=".net"); // bạn test xem

?> 

4.Các phép gán kết hợp

Trong PHP các bạn có thể sữ dụng các phép toán gán kết hợp ,sẽ giảm bớt thời gian khai báo.

Sau đây là bảng thống kê phép toán gán kết hợp ( có 2 cách sữ dụng )

=============================================

Toán tử       sữ dụng           Tương ứng

=============================================

+=              $a+=$b            $a=$a+$b;

++              $a++                $a=$+1;

-=               $a-=$b             $a=$a-$b;

--                $a--                  $a=$a-1;

/=               $a/=$b             $a=$a/$b;

*=              $a*=$b            $a=$a*$b;

%=             $a%=$b           $a=$a%$b;

.=               $a.=$b              $a=$a.$b;

=============================================  

Trên đây là một số toán tử mà mình sưu tầm được, hi vọng nó sẻ giúp ít phần nào cho các bạn!

Đọc thêm: http://hocvui.net/php/mot-so-toan-tu-khac-trong-php.html#ixzz1Z42XByB0

Hocvui.net - học những điều cơ bản

Sự linh hoạt của PHP với các kiểu giá trị

Tháng Sáu 24, 2009, 05:21:58 PM gửi bởi nvcnvn

Bài này sẽ nêu ra một số đểm linh động của php về mặt tính toán và các giá trị. Các bạn nên đọc bài này để tránh thắc mắc về sau gặp phải bời những điểm khá linh động đó !

VD: Ta có đoạn code

Mã nguồn: [Chọn]

<?php

$a=2;

$b="2 chuỗi";

$c=$a+$b;

echo $c;

?>

Nếu bạn chạy thử và kết quả in ra màn hình sẽ là 4. Sỡ dĩ có điều này là do nếu một chuỗi bắt đầu bằng một số nguyên hay số động PHP có thể xử lý nó như kiểu số.

Còn một trường hợp như thế này:

Mã nguồn: [Chọn]

<?php

$a=2;

$b=2.345;

$c=$a+$b;

echo $c;

?>

$a là số nguyên, $b là số động và $c=$a+$b sẽ là một số động 4.345

Với PHP làm việc với kiểu giá trị của biến thôi không cũng là một nghệ thuật. Hocvui.net sẽ có những loạt bài dành riêng cho mấy chuyện này.

Đọc thêm: http://hocvui.net/php/php-voi-cac-kieu-gia-tri.html#ixzz1Z42bMQMj

Hocvui.net - học những điều cơ bản

Dấu nháy đơn và nháy kép

Tháng Bảy 03, 2009, 04:37:28 PM gửi bởi nvcnvn

Mấy cái này ví dụ cái là các bạn hiểu ngay!

Dấu nháy và biến

Mình có hai đoạn code php, cả hai đều giống nhau, chỉ khác nhau ở cặp dấu nháy dòng thứ 3.

Mã nguồn: [Chọn]

<?php

$dot=".net";

$domain="Hocvui$dot";

echo $domain;

?>

Đoạn code php trên sẽ in ra kết quả là: Hocvui.net, nhưng với đoạn code này:

Mã nguồn: [Chọn]

<?php

$dot=".net";

$domain='Hocvui$dot';

echo $domain;

?>

Kết quả sẽ là: Hocvui$dot.

Bạn có thể bao lấy chuỗi bằng cặp dấu nháy đôi, biến trong chuỗi sẽ được mỡ rộng, còn khi bạn bao chuỗi bằng cặp dấu nháy kép, biến trong chuỗi sẽ không được mỡ rộng!

Mình thường dùng kèm phép nối chuỗi vào, làm thế sẽ không bị nhầm lẫn. VD:

Mã nguồn: [Chọn]

<?php

$dot=".net";

$domain='Hocvui'.$dot;

echo $domain;

?>

Mỗi khi in ra hay gắn cái gì có chứa chuỗi và biến, mình đều bao đoạn chuỗi thứ nhất với một cặp dấu nháy, sau đó thực hiện phép nối chuỗi đó với biến bằng mộ dấu chấm, và cứ thế.

Thay thế các cặp dấu nháy cho nhau

Nếu bạn muốn in ra một chuỗi chứ ký tự (") thay vì đặt thêm trước nó một dấu \ ta có thể đơn giản thay cặp dấu nháy bao ngoài chuổi bằng cặp dấu nháy đơn. VD:

Mã nguồn: [Chọn]

<?php

echo 'Dấu nháy kép" ';

?>

Đọc thêm: http://hocvui.net/php/nhay-don-nhay-kep.html#ixzz1Z42fwBsp

Hocvui.net - học những điều cơ bản

hằng trong PHP

Tháng Bảy 10, 2009, 09:47:28 AM gửi bởi nvcnvn

Định nghĩa hằng

Hằng số là đại lượng có giá trị không đổi, theo nghĩa toán học. Còn trong lập trình thì cũng hơi tương tự như thế.

Hằng được đặt ra để lưu giữ một giá trị (tương tự như biến) nhưng chỉ khác một  điều duy nhất là sau khi khai báo giá trị , ta không thể thay đổi giá trị của nó nữa!

Hàm define() được sử dụng để tạo một hằng số:

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:

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");

Một số hằng xây dựng sẵn (built in constant)

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)

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.

echo (PHP_OS); // in ra màn hình "Linux" (ví dụ)

_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.

PHP còn cung cấp một số hằng để thông báo lỗi như E_ERROR, E_WARNING, E_PARSE và E_NOTICE.

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:

<HTML>

<!-- phpinfo.php-->

<BODY>

<?php

phpinfo();

?>

</BODY>

</HTML

Đọc thêm: http://hocvui.net/php/php-hang.html#ixzz1Z42itVMJ

Hocvui.net - học những điều cơ bản

Lừa kiểu và ép kiểu dữ liệu

Tháng Bảy 10, 2009, 09:49:28 AM gửi bởi nvcnvn

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

$a=1 // $a là kiểu integer

$a=1.2 // Bây giờ, nó là kiểu double

$a="1" // Và bây giờ nó là kiểu string

a) Chuyển kiểu chuỗi và lừa kiểu dữ liệu

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:

$str="756300 không có";

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:

$x=4+$str;//$x =756304

Nhưng bản thân giá trị của biến $str không thay đổi

echo ($str); // In ra màn hình chuỗi "756300 không có"

Chuyển kiểu chuỗi phải tuân theo 2 nguyên tắc sau:

- 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.

- 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.

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

$a=1 //$ a là một số nguyên

$b= 1.0 //$b là số thực

$c=$a+$b //$c là kiểu số thực , = 2.0

$d = $c+"6th" //$d là kiểu số thực = 8.0

Ép kiểu dữ liệu

Ép kiểu dữ liệu cho phép bạn thay đổi kiểu dữ liệu của biến

$a=11.2// $a là kiểu thực

$a=(int)$a// Bây giờ, $ a là kiểu nguyên, giá trị = 11

$a= (double) $a// Bây giờ $a lại trở về kiểu thực = 11.0

$b= (string)$a// $b là giá trị kiểu chuỗi ="11"

Ngoài ra, chúng ta còn được phép ép kiểu (array) và (object)

(integer) tương đương với (int); (fload) và (real) tương đương với (double)

 Một số hàm tiện ích khác

PHP có một số hàm hỗ trợ làm việc với các biến

- 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.

Ví dụ:

echo(gettype($name));

- 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.

VD:

$a=7.5; //$a là kiểu thực

settype($a,"integer"); // bây giờ nó là một số nguyên có giá trị 7

- 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;

- 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 đó

Sưu tầm trên Internet

Đọc thêm: http://hocvui.net/php/doi-kieu-du-lieu.html#ixzz1Z42uUVax

Hocvui.net - học những điều cơ bản

PHP câu lệnh IF

Tháng Bảy 09, 2009, 03:04:01 PM gửi bởi nvcnvn

Trong cuộc sống, có nhiều việc ta chỉ làm khi thoả mản một số điều kiện cụ thể.

Ví dụ:

Một ông bố hứa với con trai:

_Nếu con đỗ đại học thì bố sẽ thưởng cho con một chiếc xe.

Chừng nào mà điều kiện con đỗ đại học thì ông bố mới lo tới chuyện thưởng cho con một chiếc xe . Tới một ngày kia, ông bố lại nói với cậu con trai.

_Nếu con đỗ đại học thì bố sẽ thưởng cho con một chiếc xe, nếu không thì đi nghĩa vụ quân sự.

Ở câu nói thứ nhất của ông bố, không nói rõ thi rớt thì có chuyện gì, còn ở câu thứ ai có nói rõ.

Trong lập trình tuy hình thức từng ngôn ngữ hơi khác nhau nhưng cũng có hai dạng cơ bản của câu điều kiện,  ta chỉ bàn tới câu lệnh này trong phạm vi PHP

if-then

if(<điều kiện>)

{

     câu lệnh 1;

     câu lệnh 2;

     ................

}

Nếu chỉ có một câu lệnh sau vế điều kiện thì ta không cần cặp dấu ngoặc {}, nhưng luôn có có hiện diện của cặp dấu {} là một thói quan tốt, giúp tránh nhầm lẫn!

if-then-else

if(<điều kiện>)

{

//các câu lệnh sẽ thực hiện nếu điều kiện thoả mản

     câu lệnh 1;

     câu lệnh 2;

     ................

}else{

//các câu lệnh thực hiện khi điều kiện không thoả mản

     câu lệnh 1;

     câu lệnh 2;

     ................

}

Cách xác định đúng hay sai

Ví dụ ta có đoạn script:

$a=3;

$b=5;

if($a<$b)

{

  echo"Đúng";

}else{

  echo"Sai";

}

Trường hợp này thì kết quả sẽ là Đúng

Nhưng hãy xét thêm trường hợp:

$a=3;

$b=5;

if($a<$b==false)

{

  alert("Đúng");

}else{

  alert("Sai");

}

Thì kết quả sẽ là một hộp thông báo với nội dung là Sai

??? ???

Vì:

bản thân biểu thức a<b với a=3 và b=5 mang giá trị đúng(true) mà đúng(true)==sai(flase) thì tất nhiên là sai.

Sữ dụng toán tử or(||) , and(&&)

Xét đoạn code, nếu với một số a có chia hết cho cả 6 và 4 không, nếu có thì kết quả sẽ là , ngược lại thì không.

<?php

$a=12;

if(($a%4==0)&&($a%6==0))

{

echo "Có";

}else{

echo "không"

}

?>

Kết quả dĩ nhiên sẽ là

Chú ý:Tự bản thân toán tử <= hay >= đã chứa một toán tử hoặc.

Đọc thêm: http://hocvui.net/php/php-cau-lenh-if.html#ixzz1Z42zBM00

Hocvui.net - học những điều cơ bản

PHP elseif

Tháng Bảy 09, 2009, 03:17:37 PM gửi bởi nvcnvn

Câu lệnh if-else dùng cho trường hợp chỉ có một điều kiện cần được xem xét tới, nhưng trường hợp có nhiều điều kiện cũng như khả năng sảy ra thì sao!?!?

Xét ví dụ:

Nếu điểm Trung Bình năm của con từ 9 trở lên thì quà của con sẽ là một chiếc Nouvo, từ 7 tới dưới 9 là một chiếc Martin, còn mà dưới 7 là có chuyện đó!  .

Câu nói đó trong PHP sẽ là:(giả sử điểm là 8 đi ha )

<?php

$diem=8;

if($diem>=9)

{

echo"Được một chiếc Nouvo";

}elseif($diem>=7)

{

echo"Được một chiếc Martin";

}else

{

echo"Tiêu rồi";

}

?>

Theo như giả sử thì Được một chiếc Martin  rồi ha!

Chú ý, việc dùng elseif hoàn toàn khác với dùng nhiêu câu lệnh if như trong ví dụ sau đây:

<?php

diem=10;

if($diem>=9)

{

echo"Được một chiếc Novol";

}

if($diem>=7)

{

echo"Được một chiếc Martin";

}else

{

echo"Tiêu rồi";

}

?>

Lần này chúng ta tự tin hơn, cứ mạnh dạng cho diem=10 . Cùng với sự tự tin đó, kết quả sẽ là:

Được một chiếc Novolvà cảĐược một chiếc Martin.

Sướng nhĩ, nhưng thế là do lỗi lập trình, một ngày nào đó khi bạn trở thành một lão làng lập trình, bạn tự viết cho mình một website buôn bán, và lầm lẫn như thế này sẽ làm bạn.......

Thật ra nếu muốn viết đoạn trên bằng cách dùng nhiều câ lệnh if nhưng theo đúng cách ta nghĩ thì phải:

<?

$diem=10;

if($diem>=9)

{

echo"Được một chiếc Novol";

}

if(($diem>=7)&&($diem<9))

{

echo"Được một chiếc Martin";

}

if($diem<7)

{

echo"Tiêu rồi";

}

?>

Nhưng quả thật sẽ rất khó khăn nếu có nhiều mức thưởng nhỉ!

Đọc thêm: http://hocvui.net/php/php-else-if.html#ixzz1Z432UxYx

Hocvui.net - học những điều cơ bản

Một dang khác của phát iểu if

Tháng Bảy 20, 2009, 11:59:04 AM gửi bởi pmtxc2k

Sau đây mình sẽ giới thiệu một cách đặt biến đặc biệt :  

Các bạn xem VD sau

<?

$math = 10 + 10 ;

if ($math == 20)

$rs = "Đúng";

else

$rs = "Sai";

?>

Bây giờ tớ thay đoạn mã trên bằng đọan dưới đây, các bạn xem sự khác biệt nhé

<?

$math = 10 + 10 ;

$rs = $math == 20 ? "Đúng" : "Sai" ;

?>

Chúng ta thấy lệnh điều kiện ifelse được thay thế bằng ?  và :

Như vậy sẽ rất tiện cho chúng ta khi lập trình và nhìn cũng thẩm mỹ hơn  

Đọc thêm: http://hocvui.net/php/dang-van-tat.html#ixzz1Z437FwLi

Hocvui.net - học những điều cơ bản

Các vòng lặp PHP

Tháng Bảy 09, 2009, 04:12:20 PM gửi bởi nvcnvn

Bạn muốn bày tỏ tình yêu với người ấy, và muốn cho người ấy biết bạn yêu người ấy đến nức nào, và ý tưởng của bạn sẽ là một trang web với hàng ngàn dòng chữ : I LOVE YOU

Có hai cách để làm chuyện này:

_Đầu tiên bạn hãy viết ra một câu: I LOVE YOU, sau đó copy & past bằng tổ hợp phím Ctrl + V cho nó lẹ, được cở 5,6 dòng, tô đen hết lại past tiếp, được cỡ một ganf, tô den rồi past cho nó nhiều, chả mấy chốc cũng sẽ được một ngàn dòng.

_Cách thứ hai là làm mọi thứ với khoảng 5 dòng với javascript, quăng luôn đoạn code để mọi người xem rồi ta cùng đi vào tìm hiểu sau:

Vòng lặp While

<?php

while($i<1001)

{

echo "<b>I LOVE YOU</b><br />";

$i=$i+1;

}

?>

Ta hãy bắt đầu với dòng while($i<1000), chữ while trong tiếng Anh có nghĩa là trong khi, còn trong trường hợp này có nghĩa là: khi điều kiện còn đúng thì làm đi, làm lại cái trong cặp dấu ngoặc móc, với câu lệnh trên của chúng ta thì điều kiện là $i<1001.

Dòng echo "<b>I LOVE YOU</b><br />"; in ra sòng mã HTML mà ta cần.

Còn dòng $i=$i+1; cũng không kém gì quan trọng, nếu tiếu dòng này, biến $i sẽ lưu giữ mãi một giá trị và sẽ chẳn bao giờ lớn hơn 1001, vòng lặp sẽ chạy mại không dừng! trong mọi trường hợp, điều này không hề có lợi cho bất cứ ai, nhà sản xuất hay người sử dụng!

Cú pháp của vòng lặp While:

while(<điều kiện>)

{

   câu lệnh 1;

   câu lệnh 2;

   .................

}

Vòng lặp Do...... While

VÒng lặp Do....While gần giống như vòng lặp While, chỉ có điều là các câu lệnh sẽ được làm ít nhất một lần rồi mới bắt đầu kiểm tra điều kiện ở các lần sau.

Cú pháp:

do

{

   câu lệnh 1;

   câu lệnh 2;

   .................

}

while(<điều kiện>);

Đọc thêm: http://hocvui.net/php/php-vong-lap-while.html#ixzz1Z43F52S2

Hocvui.net - học những điều cơ bản

Vòng lặp For

Tháng Bảy 27, 2009, 04:05:04 PM gửi bởi nvcnvn

Vòng lặp For

Bạn hãy xem ví dụ với cùng chức năng in ra 1000 cấu I LOVE YOU như đoạn code trên nhưng với vòng lặp for:

for($i=0;$i<1001;$i++)

{

echo "<b>I LOVE YOU</b><br />";

}

or(phần khởi tạo;phần điều kiện;tăng hay giảm giá trị)

Phần khởi tạo: bạn khái báo biến đếm và gán giá trị ban đầu cho nó luôn.

Phần điều kiện: bạn đặt ra điều kiện.

Phần tăng/giảm gái trị: đây là điềm khác biệt nhất với vòng lặp while, trong khi vòng lặp while thì cần một câu lệnh để tăng/giảm giá trị cho biến đếm, thì bản chất vòng lặp for đã có sẵn điều này.

Mình trong ví dụ trên, điều kiện mìh đã đạt theo kiểu toán tự rút gọn ( ++ có nghĩa là tự tăng lên 1, bạn nên xem lại bài toán tử)

Chú ý: mọi con đường đều về La Mã, ở các ví dụ trên mình chỉ cho tăng biến đếm lên, trong khi vẫn có thể làm như thế với các giảm biến đếm xuống, chỉ cần linh hoạt một chút:

<?php

for($i=1001;$i>1;$i--)

{

echo "<b>I LOVE YOU</b><br />";

}

?>

Đọc thêm: http://hocvui.net/php/php-vong-lap-for.html#ixzz1Z43IwsKY

Hocvui.net - học những điều cơ bản

Mảng trong PHP

Tháng Bảy 10, 2009, 10:01:36 AM gửi bởi nvcnvn

Nếu bạn đã từng học qua bất cứ ngôn ngữ lập trình nào, thì chắc hẵn sẽ không xa lạ gì với mãng!

Còn nếu bạn là người mới vào nghề như mình, thì đây là một khái niệm mới, cũng khá khó đấy!

Mảng gồm có hai loại, mảng một chiều và mảng nhiều chiều, trong mãng nhiều chiều thông dụng nhất ta dùng tới mảng hai chiều, vì thế ta chỉ nói về mảng một chiều và mảng hai chiều.

Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu. Mảng được đặt tên và mỗi pần tử có một chỉ số. Đề mô tả mảng một chiều cần xác định kiểu của phầnt ử và cách đánh số các phần tử của nó.

Nhớ lại ví dụ về biến mà mình mô tả với bao thuốc lá ở những bài nói về biến, bây ta ví dụ trường hợp ta có 10 bao thuốc là và bạn quyết định đặt tên cho chúng là bao1,bao2,....,bao8,bao9,bao10, với mục đích là mỗi bao chứa một cái gì đó, tới khi nào cần cái gì thì lấy ra mà dùng.

Còn mảng, mảng chính là cả cây thuốc lá!    , đơn giản chỉ là một cây thuốc là, bên trong có những bao thuốc lá!

giải thích cho dài dòng, mảng 1 chiều đơn thuần là một tập hợp các biến, và các biến có thứ tự thay vì tên!

tạo một mảng:

Ví dụ t một mảng đơn giản

<?php

$mang=array("a","b","c");

echo $mang[0]

?>

Thử in ra phần tử thứ nhất của mảng(kết quả sẽ là a)

Đây cũng là một các để khia báo mảng, các phần tử của mảng được đặt trong dấu nháy kép và chúng được ngăn cách nhau giữa dấu (,)

Còn đây là cách thứ hai, khá dễ nhìn!

Bạn hãy khai báo mảng, không cần khai báo nội dung bên trong:

$mang=array();

sau đó, khai báo từng phần tử bằng cách này:

$mang[0]="a";

$mang[1]="b";

$mang[2]="c";

$mang[3]="d";

Bạn chú ý là trong PHP phần tử đầu tiên của mảng có thứ tự là 0.

____________

Duyệt qua mảng với vòng lặp.

Với một mảng như thế này, ý tưởng là chạy một vòng lặp từ đầu mảng tới cuối mảng lấy ra giá trị.

Để tìm được độ dài của mảng php cung cấp cho cúng ta một hàm, đó là hàm count, php cung cấp rất nhiều các hàm để làm việc với mảng, cụ thể ta sẽ nói tới sau, bây giờ chỉ quan tâm với cái hàm count

Hàm count() nhận vào một tham số chính là mảng. Ví dụ tương ứng với mảng $mang trên ta có:

<?php

$mang=array();

$mang[0]="a";

$mang[1]="b";

$mang[2]="c";

$mang[3]="d";

echo count($mang);

?>

kết quả in ra sẽ là 4

đi tiêp vào cái vòng lặp, ở đây mình dùng vòng lặp for

<?php

$mang=array();

$mang[0]="a";

$mang[1]="b";

$mang[2]="c";

$mang[3]="d";

for($i=0;$i<count($mang);$i++)

       

{

       

       

echo $mang[$i]."<br />";

       

}

?>

Đọc thêm: http://hocvui.net/php/mang-trong-php.html#ixzz1Z43VdoyD

Hocvui.net - học những điều cơ bản

php mảng kết hợp

Tháng Bảy 26, 2009, 10:49:37 AM gửi bởi nvcnvn

Mảng kết hợp đơn giản là loại mảng nhưng:

Chúng ta đi xem ví dụ:

<?php

$mang=array("a","b","c");

echo $mang[0]

?>

Đây là mảng cơ bản của chúng ta, và khi lấy giá trị của một phần tử trong mảng ra, ta tham chiếu tới nó với khoá là giá trị thứ tự của nó.

Điểm khác biệt của mảng kết hợp là cái khoá. Ta có thể khai báo như sau:

<?php

$mang=array("name"=>"Nguyên","website"=>"hocvui.net");

echo $mang["name"]

?>

kết quả sẽ là :Nguyên

ta cũng có thể khai báo với cách khác như sau:

$mang=array();

$mang["name"]="Nguyên";

$mang["website"]="hocvui.net";

Cách duyệt qua mạng này cũng hơi khác với mảng một chiều. Để duyệt mảng ta kết hợp vòng lặp whilelis()=each()

Ví dụ để lấy cả khoá lẫn giá trị ta làm như sau:

<?php

$mang=array("name"=>"Nguyên","website"=>"hocvui.net");

while(list($key,$value)=each($mang))

       

{

       

       

echo "<b>Khoá</b>: ".$key." <b>giá trị</b>: ".$value."<br />";

       

}

?>

Còn ví dụ chỉ muốn lấy ra giá trị thì chỉ khác ở mỗi dòng vòng lặp while:

while(list(,$value)=each($mang))

bỏ đi biến $key, nhưng vẫn để trước biến $value dấu ( , )

Giả thích nguyên lý làm việc như sau:

Mỗi lần vòng lặp chạy each() sẽ lấy ra lần lượt một cặp khoá và giá trị tương ứng.

2 giá trị đó sẽ được gán lần lượt cho biến ở vị trí thứ nhất và thứ hai đạt trong list()

Vòng lặp dừng lại khi duyệt qua hết mảng.

Đọc thêm: http://hocvui.net/php/php-mang-ket-hop.html#ixzz1Z43g2s4k

Hocvui.net - học những điều cơ bản

php mảng dựng sẵn trong php

Tháng Bảy 26, 2009, 04:32:12 PM gửi bởi nvcnvn

Có khá nhiều mảng dựng sẵn trong các ngôn ngữ lập trình, php cũng như vậy, và những mảng này rất hữu ít trong khi làm việc.

Ở đây mình chạy đoạn mã để truy xau6t1 các kháo và gái trị của mảng $_SERVER một mảng khá hữu ít:

<?php

$mang=$_SERVER;

       

while(list($key,$value)=each($mang))

       

       

{

       

       

       

echo "<b>Khoá</b>: ".$key." <b>giá trị</b>: ".$value."<br />";

       

       

}

?>

Đoạn mã này nằm trong file n1.php đặt trong thư mục new, host hệ điều hành Window, thư mục root nằm ở C:/Program Files/VertrigoServ/www. Kết quả là đây:

Mã nguồn: [Chọn]

Khoá: HTTP_HOST giá trị: 127.0.0.1:8080

Khoá: HTTP_USER_AGENT giá trị: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1

Khoá: HTTP_ACCEPT giá trị: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Khoá: HTTP_ACCEPT_LANGUAGE giá trị: en-us,en;q=0.5

Khoá: HTTP_ACCEPT_ENCODING giá trị: gzip,deflate

Khoá: HTTP_ACCEPT_CHARSET giá trị: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Khoá: HTTP_KEEP_ALIVE giá trị: 300

Khoá: HTTP_CONNECTION giá trị: keep-alive

Khoá: HTTP_COOKIE giá trị: _csuid=49cdeeba4344116b; SMFCookie956=a%3A4%3A%7Bi%3A0%3Bs%3A1%3A%221%22%3Bi%3A1%3Bs%3A40%3A%228f96f02f0ffe510b7f35f7a8a78faf0b39a2b5e5%22%3Bi%3A2%3Bi%3A1435289626%3Bi%3A3%3Bi%3A0%3B%7D; username=Nguy%EAn; SMFCookie891=a%3A4%3A%7Bi%3A0%3Bs%3A1%3A%223%22%3Bi%3A1%3Bs%3A40%3A%220a8eaaa533fa14a9e62e4df7da7094e41769f28c%22%3Bi%3A2%3Bi%3A1437102838%3Bi%3A3%3Bi%3A0%3B%7D

Khoá: HTTP_CACHE_CONTROL giá trị: max-age=0

Khoá: PATH giá trị: C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem

Khoá: SystemRoot giá trị: C:\WINDOWS

Khoá: COMSPEC giá trị: C:\WINDOWS\system32\cmd.exe

Khoá: PATHEXT giá trị: .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

Khoá: WINDIR giá trị: C:\WINDOWS

Khoá: SERVER_SIGNATURE giá trị:

Apache/2.0.63 (Win32) PHP/5.2.6 Server at 127.0.0.1 Port 8080

Khoá: SERVER_SOFTWARE giá trị: Apache/2.0.63 (Win32) PHP/5.2.6

Khoá: SERVER_NAME giá trị: 127.0.0.1

Khoá: SERVER_ADDR giá trị: 127.0.0.1

Khoá: SERVER_PORT giá trị: 8080

Khoá: REMOTE_ADDR giá trị: 127.0.0.1

Khoá: DOCUMENT_ROOT giá trị: C:/Program Files/VertrigoServ/www

Khoá: SERVER_ADMIN giá trị: root@localhost

Khoá: SCRIPT_FILENAME giá trị: C:/Program Files/VertrigoServ/www/new/n1.php

Khoá: REMOTE_PORT giá trị: 3450

Khoá: GATEWAY_INTERFACE giá trị: CGI/1.1

Khoá: SERVER_PROTOCOL giá trị: HTTP/1.1

Khoá: REQUEST_METHOD giá trị: GET

Khoá: QUERY_STRING giá trị:

Khoá: REQUEST_URI giá trị: /new/n1.php

Khoá: SCRIPT_NAME giá trị: /new/n1.php

Khoá: PHP_SELF giá trị: /new/n1.php

Khoá: REQUEST_TIME giá trị: 1248597994

Khoá: argv giá trị: Array

Khoá: argc giá trị: 0

Cái này ví dụ, để tham chiếu tới PHP_SELF thì ta làm theo cách của mãng kết hợp bìn thường $_SERVER['PHP_SELF']

Một số phần tử mà mình thấy rất quan trọng:

PHP_SELF: trả về đường dẫn tới file d0ang chạy, tính từ thư mục gốc

REQUEST_URI: tương tự như cái PHP_SELF, nhưng nếu đường dẫn có chứa tham số ( ?aaa=xxx...) thì nó trả về luôn mấy cái tham số đó.

SCRIPT_FILENAME: trả về đường dẫn đầy đủ

DOCUMENT_ROOT: trả về đường dẫn tới thư mục www càu host

***

Chú ý: đường dẫn ở đây không phải là đường dẫn với dạng tên miền nha mà là đường dẫn kiểu như các thư mục trong máy.

Đọc thêm: http://hocvui.net/php/php-mang-dung-san.html#ixzz1Z43jVB5R

Hocvui.net - học những điều cơ bản

Thiết lập hàm trong php

Tháng Bảy 31, 2009, 03:50:42 PM gửi bởi nvcnvn

Vừa qua, ở bài nói về mảng tại: http://hocvui.net/php/post/1682 chúng ta thấy có sự xuất hiện của một hàm có tên là count (hàm này trả về độ dài của mảng đó).

Trong PHP có rất nhiều những hàm dựng sẵn như thế, giúp ta giải quyết được nhiều tình huốn trong lập trình web dễ dàng hơn. bên cacnh5 những hàm có sẵn đó, ta cũng có thể tự soạn thảo các hàm cho riêng mình.

Mục đích của việc tự soạn thảo các hàm là cho đợ mõi tay, dễ hiệu chỉnh.

Các bạn hãy tưỡng tượng ta có một hành động A, hành động A là tập hợp bao gồm rất nhiều hành động khác. Và trên cả trang web, ta biết rằng sẽ có nhiều hơn 3 lần ta thực hiện lại hành động A đó, vệc đưa hành động đó trỡ thành một hàm sẽ là một bước đi khôn ngoan và rất "lập trình viên".

________________________

Xét ví dụ bạn đơn giãn muốn in ra một nghìn câu: Anh yêu em.

Mọi chuyện sẽ đơn giản hoá với vòng lặp (các bạn vẫn còn nhớ chứ).

for($i=0;$i<1001;$i++)

{

echo "<b>Anh yêu em</b><br />";

}

Nhưng mà sẽ khá dài cho trường hợp: 100 cấu Anh yêu em., tiếp theo lại là 1000 câu Em có yêu anh không!?, lại 1000 câu.......

Để khai báo hàm - function trong php ta có cú pháp như sau:

Mã nguồn: [Chọn]

function <tên hàm>()

{

//Nội dung các câu lệnh sẽ nàm trong hai dấu ngoặc nhọn này

}

Với ví dụ trên, mình sẽ viết một hàm có công dụng in ra 1000 câu Anh yêu em. như sau:

function sayiloveyou()

{

   for($i=0;$i<1001;$i++)

      {

         echo "<b>Anh yêu em</b><br />";

      }

}

Mình đã đặt tên cho hàm này là hàm sayiloveyou và bất cứ khi nào, ở bất cứ đâu trên trang web, mình muốn in ra 1000 câu Anh yêu em. mình chỉ việc gọi hàm này (gọi nói nghe cho nó giống lập trình viên, chứ có nghĩa là viết nó ra thôi!)

<?php

function sayiloveyou()

{

   for($i=0;$i<1001;$i++)

      {

         echo "<b>Anh yêu em</b><br />";

      }

}

sayiloveyou();

echo "Đẵ in ra 100 câu đầu tiên, không biết em có hiểu rõ tình cảm của anh chư, in tiếp<br />";

sayiloveyou();

?>

Hàm sayiloveyou() của chúng ta vừa mới viết, lại không giống như cái hàm count() đã nêu ra từ đầu bài ở chỗ hàm count nhận vào một tham số bên trong cặp dấu ngoặc, những bài tiếp theo của chúng ta sẽ nói về mấy cái mà mình gọi là "tham số" này.

À xin nói thêm, nếu có ai định dùng tin học để chinh phục nữa kia, thì các trên của mình còn dỡ lắm, mình nghĩ cách tốt nhất là học viết phần mềm, hay virus gì đó, chứ web thì hiệu quả không bằng!

Đọc thêm: http://hocvui.net/php/tu-thiet-lap-ham.html#ixzz1Z43mXsAb

Hocvui.net - học những điều cơ bản

hàm và các tham số.

Tháng Bảy 31, 2009, 04:38:31 PM gửi bởi nvcnvn

Vấn đề để nãy sinh ra mấy cái tham số này là, có uổn quá không khi mỗi lần ghi là có 1000 câu giống nhau, 1000 lần thì nhiều thiệt, nhưng mà lại không có tác dụng đả kích mục tiêu, phải là 1000 câu Anh yêu em. rồi 1000 câu Em là mặt trời của anh. rồi 1000 câu Anh phải đeo kính râm khi em hé môi cười. thì may ra nàng còn say sẫm mặt mài.

Ta nhận thấy ngây bất cập, hàm được đặt ra để rút ngắn công việc, nhưng nếu cứ mỗi câu như thế mà viết một hàm thì nó chỉ làm mọi chuyện rắc rối thêm.

Và ý tưởng dẫn tới....xem ví dụ  :

function sayiloveyou()

{

   for($i=0;$i<1001;$i++)

      {

         echo "<b>Anh yêu em</b><br />";

      }

}

Đó là đoạ code củ, sửa nó lại một chút, các bạn chú ý tới những điểm khác biệt nhé:

function sayiloveyou($loinoi)

{

   for($i=0;$i<1001;$i++)

      {

         echo $loinoi;

      }

}

Mình đã thêm vào ở giữa 2 dấu ngoặc () một biến $loinoi, và ở dòng echo thay vì nội dung là câu nói thì nội dung ở đấy lại là biến $loinoi.

Để gọi hàm lúc này và in ra 100 câu Anh yêu em. ta gọi như sau:

<?php

function sayiloveyou($loinoi)

{

   for($i=0;$i<1001;$i++)

      {

         echo $loinoi;

      }

}

sayiloveyou("Anh yêu em.<br />");

?>

giải thích cho việc này chính là khi gọi hàm sayiloveyou("Anh yêu em.<br />") thì phần nội dung "Anh yêu em.<br />" được gán cho biến $loinoi khá là đơn giản [hải không mọi người.

Ta cũng có thể viết một hàm với nhiều tham số nhận vào, ví dụ như ngoài việc tuỳ biến sẽ in ra cái chi, ta có thể tuỳ biếm thêm số lầm in ra.

function sayiloveyou($loinoi,$solan)

{

   for($i=0;$i<$solan;$i++)

      {

         echo $loinoi;

      }

}

Khi gọi hàm này, ta lần lượt cho vào hai giá trị tương ứng theo đúng thứ tự:

sayiloveyou("Anh yêu em.<br />",999);

Cho tới lúc này thì để chinh phục cô ấy với cấu trúc hàm, mọi việc chỉ còn tuỳ thuộc vào ý tưởng của bạn nữa thôi

nói đùa thế cho vui, chứ thật ra có một câu nói như thế này:

Rào cản hiện thời không phải là công nghệ mà là ý tưởng.

Những kiến thức trên rất là cơ bản, nhưng lại nắm giữ những sức mạnh rất lớn.

Đọc thêm: http://hocvui.net/php/ham-va-tham-so.html#ixzz1Z43qdWnc

Hocvui.net - học những điều cơ bản

Biến toàn cục và biến cục bộ

Tháng Tám 01, 2009, 03:49:41 PM gửi bởi nvcnvn

Khái niệm biến toàn cục và biến cục bộ chắc các bạn cũng đã từng nghe qua, trong rất nhiều ngôn ngữ khác nhau. trong PHP cũng không loại trừ.

Khác biệt lớn nhất của biến toàn cục và biến cục bộ có thể thấy ngay ở các ví dụ về fuction. ta xét đoạn mã:

bạn hãy chạy thử đoạn mã, chỉ có 1 từ "Chữ viết" được in ra.

<?php

function vietchu()

       

{

       

       

$chu="Chữ viết";

       

       

echo $chu;

       

}

       

vietchu();

       

echo $chu;

?>

Hàm vietchu() thực hiện 2 động tác: 1 gán chuỗi "Chữ viết" cho biến $chu, 2 in ra biến $chu

Vậy tại sao khi với dòng lệnh tiếp theo ( echo $chu; ) lại không hề cho ra bất cứ kết quả nào?

Câu trả lời mà cho tới lúc này chắc các bạn ai cũng đoán được: $chu chỉ là biến cục bộ, chỉ có hiệu lực bên trong hàm.

Việc người ta chế ra 2 loại biến này cũng có lý do, ví dụ như khỏi lo bị trùng các biến nếu trong cùng một file mà có nhiều hàm. Nhắm cái nào cần giữ giá trị llại thì giữ, đỡ tốn cấu hình.

ở đây, nếu bạn muốn xác định biến nào sẽ là biến toàn cục thì hãy khai báo các biến đó sau từ khoá global

function vietchu()

       

{

       

global $chu;

       

       

$chu="Chữ viết";

       

       

echo $chu;

       

}

và thêm một lưu ý, biến đã được gán giá trị bên ngoài, đưa vào trong hàm cũng không có giá trị (nói chung nếu mà không khai báo biến toàn cục thì "nội bất xuất, ngoại bất nhập".

Ví dụ:

<?php

$viet="Việt nam";

function vietchu()

       

{

       

       

$chu="Chữ viết ".$viet;

       

       

echo $chu;

       

}

       

vietchu();

?>

hàm này chỉ in ra hàm chử viết, để có thể in ra nguyên câu : Chữ viết Việt Nam như ta mong muốn thì hãy khai báo biến toàn cục cho $viet

$viet="Việt nam";

function vietchu()

       

{

       

global $viet;

       

       

$chu="Chữ viết ".$viet;

       

       

echo $chu;

       

}

Đây chỉ là một ví dụ đơn giản, trong thực tế, vấn đề này được dùng tới rất nhiều, trong thời gian và va chạm, bạn sẽ thấy cái gì cacng2 cơ bản lại càng quan trọng.

Đọc thêm: http://hocvui.net/php/bien-toan-cuc-va-bien-cuc-bo.html#ixzz1Z43vB9Sq

Hocvui.net - học những điều cơ bản

php function return

Tháng Tám 02, 2009, 04:41:20 PM gửi bởi nvcnvn

lại bàn tới hàm count ở bài http://hocvui.net/php/post/1682 ta nhận thấy thêm một điều rằng hàm count trả về một giá trị số có thể đem ra tính toán luôn.

for($i=0;$i<count($mang);$i++)

   {

      echo $mang[$i]."<br />";

       

   }

Hàm count không như các hàm mà ta đã tự viết từ trước đến giờ, nó chả đưa ra màn hình cái gì cả, mà trả về cho bản thân nó một giá trị. (Ở đây nếu bạn nào đã học qua pascal chắc chắn sẽ hiểu rất rỏ sự khác biệt giữa hàm và thủ tục).

Ta cũng có thể làm được điều đó. Ví dụ, mình sẽ viết một hàm tính tổng hai số. hàm này nhận vào 2 tham số, tính tổng của chúng và trả về giá trị cho chính nó.

function tonghaiso($a,$b)

       

{

       

       

$c=$a+$b;

       

       

return $c;

       

}

Dòng : return $c; là dòng quan trọng nhất bài này mà mình muốn nói tới, từ khoá return sẽ gán một giá trị nào đó cho hàm.

Hãy xét ví dụ tính toán này, các bạn sẽ hiểu rõ hơn!

<?php

function tonghaiso($a,$b)

       

{

       

       

$c=$a+$b;

       

       

return $c;

       

}

echo tonghaiso(3,5);

echo "<br />";

$giatri = 9 + tonghaiso(3,5);

echo $giatri;

echo "<br />";

echo tonghaiso(3,tonghaiso(3,5));

?>

Kết quả sẽ là:

8

17

11

Đọc thêm: http://hocvui.net/php/php-function-return.html#ixzz1Z43y5yyD

Hocvui.net - học những điều cơ bản

PHP Giao tiếp với người dùng qua phương thức GET

Tháng Bảy 11, 2011, 09:10:20 PM gửi bởi nvcnvn

Giao tiếp ở đây đơn giản là nhận thông tin từ người dùng và xử lý chúng.

Nhận thông tin từ người dùng có 2 cách chính:

1 Tạo những cái ô có thể điền thông tin vào, nút nhấn để gửi.

2 (nghe hơi lạ nhưng cũng là 1 cách) Bạn có 1 danh sách, người dùng muốn xem cụ thể cái gì thì click vào. Hành động click vào thể hiện lựa chọn của người dùn, cũng là một hình thức lựa chọn dữ liệu từ người dùng. Bài viết sẽ đề cập tới phương thức này.

Xử lý ở đây có rất nhiều ví dụ:

1 Bạn vào một diễn đàn - đăng nhập - lúc này mật khẩu bạn nhập (dữ liệu đầu vào) vào sẽ được so sánh với mật của bạn lúc đăng ký xem có trùng không - không trùng thì báo sai mật khẩu - đây cũng là 1 khâu xử lý.

2 Bạn vào một blog, forum gửi bài, nội dung bài viết, tiêu đề (dữ liệu đầu vào), bài viết được lưu ở đâu đó - đây cũng gọi là xử lý.

3 Cụ thể hơn, bạn viết 1 chương trình cho người dùng nhập vào 2 con số, tính tổng 2 số.

Trang ví dụ: http://hocvui.net/php/demo/php-get.php

Mô tả: bên trái có một list các tên, bạn click vào tên bạn muốn sẽ in ra cho bạn cụ thể quê quán, giới tính như đã được lưu.

Code hoàn thiện ở cuối bài, tiếp theo đây là phần hướng dẫn.

Tạo một biến $users là một mảng, chứa vài mảng nhỏ khác:

Để hiểu thêm về mảng ở đây, mời các bạn đọc lại bài http://hocvui.net/php/php-mang-ket-hop.html

Mã nguồn: [Chọn]

$users = array(

array('name' => 'Tuấn', 'gender' => 'Nam', 'city' => 'Hồ Chí Minh'),

array('name' => 'Dung', 'gender' => 'Nữ', 'city' => 'Hà Nội'),

array('name' => 'Trang', 'gender' => 'Nữ', 'city' => 'Huế'),

);

Ví dụ, ta muốn tin ra thành phố của bạn tên "Dung" (Dung ở vị trí thứ 2 trong mãng $users nên có số thứ tự là 1)thì ta dùng code sau:

Mã nguồn: [Chọn]

echo $user[1]['city'];

Tiếp đến, để lựa chọn thông tin của ai sẽ được hiễn thị thì việc ta cần làm là giúp người dùng lựa chọn và nhận kết quả lựa chọn từ người dùng.

Để bắt đầu, bạn hãy tạo 1 file tên là php-get.php với nội dung như sau:

Mã nguồn: [Chọn]

<?php

echo $_GET['id'];

?>

Save file này lại và duyệt nó trên trình duyệt, ví dụ : localhost/php-get.php?id=1 chú ý phần sau dấu "?"

Bạn sẽ thấy nội dung trang là số 1, tương tự, hay thay đôi giá trị sau dấu "=". Giá trị sau dấu "=" sẽ là giá trị cảu biến mãng $_GET['id'].

$_GET đơn thuần chỉ là một mảng kết hợp, và các khóa là các tham số được gửi trên đường dẫn (trong truờng hợp này là ID).

Bạn có thể gửi kèm nhiều tham số cùng một lúc, ví dụ: hãy tạo một file mới với nội dung như sau:

Mã nguồn: [Chọn]

<?php

echo $_GET['id']

echo $_GET['name'];

?>

Save file này lại và duyệt nó trên trình duyệt, ví dụ : localhost/php-get.php?id=1&]name=Trang/b]

Lúc này nội dung hiện ra sẽ là 1Trang. Ta dùng dấu "&"  ghép các tham số lại với nhau để truyền đi.

Hiện giờ các bạn đã nắm bắt được vấn đề. Để người dùng có thể chọn tên của bạn muốn hiễn thị thôn tin cụ thế, ta in ra sẵn một danh sách với link có các tham số id=0, 1, 2...

Ta dùng Vòng lặp để in ra danh sách:

Mã nguồn: [Chọn]

for($i=0;$i<count($users);$i++){

        echo '

                                      <li><a>'.$users[$i]['name'].'</a></li>';

}

Để in ra giá trị của khóa city cho một bạn, ta dùng 1 code:

Mã nguồn: [Chọn]

echo $users[  $_GET['id']  ]['city'];

Ví dụ, khi ?id=1 thì đạon code trên sẽ được hiễu đơn giản là:

Mã nguồn: [Chọn]

echo $users[1]['city'];

Ta cần lưu ý một vấn đề:

Chuyện gì sẽ sảy ra nếu một người dùng vì lí do nào đó (tò mò - phá phác..) sửa lại đường dẫn như thế này : localhost/php-get.php?id=5 hoặc  localhost/php-get.php?id=abc

Rõ ràng trong mảng $users của chúng ta chỉ có 3 phần tử, thay khóa bằng 5 hay abc đơn giản chẳng cho ta một kết quả gì. Điều này không hề dơn giản và trong một vài trường hợp rất ư là nguy hiểm.http://hocvui.net

Ta hãy lấy một ví dụ chương trình tính giá trị a*b (a x b) với a, b được nhập từ người dùng qua phuơng thức GET.

Mã nguồn: [Chọn]

<?php

echo $_GET['a']*$_GET['b'];

?>

Để chạy chương trình tính toán, ta duyệt : localhost//php-get.php?a=3&b=5

Kết quả nhận được sẽ là 15. Bỏ bớt tham số b ra (localhost//php-get.php?a=3) kết quả bằng 0. Điều gì nguy hiểm trong trường hợp này? Bạn hãy tưởng tựợng a là số lượng mặt hàng, b là đơn giá và đây là trang dùng để bạn tính tiền. Thật không hay để một ai đó mua hàng trăm món đồ với giá 0 đồng.

Để tránh việc này sảy ra, ta luôn phải kiểm tra dữ liệu từ người dùng! Và quả thật kiểm tra dữ liệu từ người dùng là công việc quan trọng bật nhất trong thiết kế web(cũng như bất kỳ phần mềm nào khác). Ở đây mình chỉ xin trình bày cách kiểm tra xem a và b đã có giá trị hay chưa, chứ chưa tính tới việc có đúng kiểu giá trịnh hay chưa (trường hợp a,b được thay thế bằng chữ cái thì sao?)

Ta dùng hàm isset() đề kiểm tra.

isset()  - đọc là "is  set" (tiếng anh ấy) - trà về đúng khi một biến đã được khai báo, ngược lại sai. và code kiểm tra của chúng ta như sau:

Mã nguồn: [Chọn]

<?php

if(isset($_GET['a']) && isset($_GET['b'])){

        echo $_GET['a']*$_GET['b'];

}else{

        echo 'thieu du lieu dau vao';

}

?>

Lúc này nếu thử bỏ tham số hay hoặc b ra khỏi đường dẫn thì ta sẽ nhận được cảnh báo 'thieu du lieu dau vao' thay vì số 0.

Đây chỉ là một ví dụ để các bạn thấy được nguy cơ (thật ra khi làm trang bán hàng mà tính toán như thế htì dỡ lắm) và thật chất nguy cơ này rất lớn. Cụ thể nguy hiểm như thế nào chúng ta sẽ cùng tiềm hiểu ở cuối loạt bài về php và mysql. Còn về phần kiểm tra dự liệu người dùng nhập vào, chúng ta sẽ tiếp tục ngay sau bài nói về phương thức POST (GET và POST là hai anh em, hiểu GET rồi thì POST cũng dễ nuốt hơn phần nào)

Sau đây là full code, mời các bạn xem và ngâm cứu cùng hocvui.net

Mã nguồn: [Chọn]

<!DOCTYPE html>

<html>

<head>

<meta charset=utf-8 />

<meta />

<title>Ví dụ phương thức GET trong PHP</title>

<head>

<body>

        <table>

               <tr>

                       <td>

                               <ul>

                              

<?php

$users = array(

array('name' => 'Tuấn', 'gender' => 'Nam', 'city' => 'Hồ Chí Minh'),

array('name' => 'Dung', 'gender' => 'Nữ', 'city' => 'Hà Nội'),

array('name' => 'Trang', 'gender' => 'Nữ', 'city' => 'Huế'),

);

for($i=0;$i<count($users);$i++){

        echo '

                                      <li><a href="php-get.php?id='.$i.'">'.$users[$i]['name'].'</a></li>';

}

?>

                               </ul>

                       </td>

                       <td>

<?php

if(isset($_GET['id']) && isset($users[$_GET['id']])){

        echo "

                               Tên:".$users[$_GET['id']]['name']

                               ."<br />Giới tính:".$users[$_GET['id']]['gender']

                               ."<br />Thành phố:".$users[$_GET['id']]['city'];

}

?>

                       </td>

               </tr>

        </table>

</body>

</html>

Đọc thêm: http://hocvui.net/php/giao-tiep-voi-nguoi-dung-qua-phuong-thuc-get.html#ixzz1Z4470DGp

Hocvui.net - học những điều cơ bản

PHP Giao tiếp với người dùng qua phương thức POST

Tháng Bảy 14, 2011, 04:51:02 PM gửi bởi nvcnvn

Bài trước hocvui.net đã hướng dẫn bạn cách giao tiếp với người dùng qua phương thức GET, bài này chúng ta làm quen với 1 phương thức phồ biến hơn POST

Để dùng được POST bạn phải kết hợp với html form.

Nếu như với phương thức GET chúng ta truyền 1 tham số bằng cách ghi kèm tham số đó vào đường dẫn, thì với POST, chúng ta chỉ duy có 1 cách cơ bản nhấp là tạo một vài trường để người dùng điền thông tin vào và sau đó bấm gửi.

Trang ví dụ cảu hocvui.net: http://hocvui.net/php/demo/php-post.php

Mô tả: người dùng đang nhập vào bằng id và pass, nếu cả 2 trùng khớp sẽ hiện ra câu "xin chào <tên đầy đủ>";

Đây là danh sách id,pass,fullname dùng trong ví dụ

Trích dẫn

nam,  123456,  Hồ Thành Nam

 dung,  654321,  Hà Nhuận Dung

 trang,  abcdef,  Đinh Hoàng Trang

Code hàon thiện ở cuối bài, sau đây là phần hướng dẫn

Đầu tiên, tạo 1 cái tạo một file tên php-post.php, nội dung file như sau:

Mã nguồn: [Chọn]

<!DOCTYPE html>

<html>

<head>

<meta charset=utf-8 />

<meta />

<title>Ví dụ phương thức POST trong PHP - HocVui.Net</title>

<head>

<body>

        <form>

               ID:<input /><br />

               PASS:<input /><br />

               <input /><br />

        </form>       

</body>

</html>

Điền nội dung bất kỳ vào 2 trường ID và pass, nhấn nút Gửi, bạn sẽ thấy 1 chuỗi các tham số xuất hiện (...php-post.php?id=.....&pass=.....&submit=Gửi)

Form trên (với thuộc tính method="get") đã khởi tạo cho chúng ta một chuỗi các tham số GET với khóa là giá trị của thuộc tính name của các trường input (chúng ta có thể lấy được những gì người dùng điền vào hai ô ID và PASS qua $_GET['id'] và $_GET['pass'])

Bây giờ hãy thừ đổi  method="get" trong form thành  method="post", bây giờ bạn hãy điền bất kỳ thông tin gì vào và nhấn nút gửi. Ta chú ý không hề có sự thay đồi của đường dẫn! Đó là cái hay của phương thức POST.

Lúc này đề sử dụng nội dung của người dùng đã điền vào 2 truờng ID và PASS, ta đơn giản truy xuất 2 biến mảng $_POST['id'] và $_POST['pass']. (phương thức GET thì ta có mãng $_GET, phương thức POST ta có mảng $_POST)

Rất đơn giàn để sữ dụng POST khi ta đã hiểu về GET

Phần giải thích về phuơng thức POST đã xong. Giồ hocvui.net xin trình bày chút về thuật giải của chuơgn trình đăng nhập trên trang ví dụ:

Dòng 15 - 19 : khởi tạo 1 mảng lớn, chứ 3 mảng nhỏ, mỗi mảng nhỏ là 1 mảng kết hợp gồm 3 khóa: id, pass, fullname

Dòng 21 : kiểm tra xem nút gửi có được nhấn chưa

Dòng 22 : khởi tạo biến $login mặt định = false, nếu sau khi kết thúc vòng lặp for mà nó vẫn giữ nguyên giá trị false có nghĩa là sai mật khẩu.

Dòng 23 - 29 : Chạy 1 vòng lặp từ đầu tới cuối mảng $users, so sánh giá trị của 2 trường id, paa của mỗi mảng nhỏ với giá trị của $_POST['id'] và $_POST['pass'] cứ thế lần luợt, nếu gặp 1 trường hợp mà cà 2 phép so sánh đều đúng, thay đổi giá trị của biến $Login lại thành true

Full code cảu hocvui.net:

Mã nguồn: [Chọn]

<!DOCTYPE html>

<html>

<head>

<meta charset=utf-8 />

<meta />

<title>Ví dụ phương thức POST trong PHP - HocVui.Net</title>

<head>

<body>

        <form>

               ID:<input /><br />

               PASS:<input /><br />

               <input /><br />

        </form>       

<?php

$users = array(

array('id' => 'nam', 'pass' => '123456', 'fullname' => 'Hồ Thành Nam'),

array('id' => 'dung', 'pass' => '654321', 'fullname' => 'Hà Nhuận Dung'),

array('id' => 'trang', 'pass' => 'abcdef', 'fullname' => 'Đinh Hoàng Trang'),

);

if(isset($_POST['submit'])){

        $login = false;

        for($i=0;$i<count($users);$i++){

               if($users[$i]['id'] == $_POST['id'] && $users[$i]['pass'] == $_POST['pass']){

                       $login = true;

                       $name = $users[$i]['fullname'];

                       break;

               }

        }

        if($login){

               echo 'Xin chào '. $name;

        }else{

               echo 'Sai ID hoặc Pass!!!';

        }      

}

?>

</body>

</html>

Đọc thêm: http://hocvui.net/php/giao-tiep-voi-nguoi-dung-qua-phuong-thuc-post.html#ixzz1Z44LVB77

Hocvui.net - học những điều cơ bản

 

Bạn đang đọc truyện trên: Truyen2U.Pro