Php so sánh 2 đoạn văn chỉ ra điểm sai

Trong bài này, chúng ta sẽ tìm hiểu những kiến thức nền tảng quan trọng của PHP, nó không quá khó nhưng bạn đọc nên tìm hiểu thật cẩn thận, qua đó dễ dàng tiếp cận những kiến thức sâu hơn nhé.

Using Comments

Có 2 cách để bạn có thể add thêm comment vào code PHP của mình. Đầu tiên là comment kiểu dòng đơn, bằng cách thêm cặp dầu gạch chéo đằng trước: // This is a comment Bạn cũng có thể dùng kiểu comment này ngày phía sau một dòng code để mô tả nội dung hành động của dòng code đó, ví dụ: $x += 10; // Increment $x by 10 KHi cần comment trên nhiều dòng, bạn dùng kiểu multiple-line như dưới đây:

<?php
/* This is a section 
of multiline comments 
which will not be interpreted */
?>

Ở đây, ta có thể dùng cặp ký tự/*

<?php
$mycounter = 1; 
$mystring = "Hello"; 
$myarray = array("One", "Two", "Three");
?>

0để mở và đóng comment ở bất kỳ chỗ nào trong source code của bạn. Tôi thấy rằng, hầu hết lập trình viên thường sử dụng kiểu comment này để comment lại đoạn code mà không sử dụng nữa.

Tips: Có một lỗi khá phổ biến, đó là dùng kiểu comment multiple line /*

<?php $mycounter = 1; $mystring = "Hello"; $myarray = array("One", "Two", "Three"); ?>

0 này để comment lại một lượng lớn sourcecode, mà trong đó đã tồn tại chỗ có các ký tự comment rồi. Quy tắc là, bạn không thể lồng comment theo kiểu này, trình thông dịch PHP sẽ không thể biết được nơi kết thúc của comment và sẽ hiển thị ra message lỗi. Nếu bạn sử dụng các IDE hiện đại - support tính năng highline syntax, kiểu lỗi này sẽ dễ dàng được phát hiện.

Basic Syntax

PHP là một ngôn ngữ khá đơn giản bắt nguồn từ C và Perl, nhưng nó lại khá giống Java. Nó cũng khá là linh hoạt, tuy nhiên có một vài quy tắc mà bạn cần tìm hiểu về cú pháp và cấu trúc của nó.

Semicolons

Bạn có thể thấy rằng, trong các ví dụ bên trên, các lệnh PHP cần kết thúc bằng dấu chấm phẩy, như sau:

<?php
$mycounter = 1; 
$mystring = "Hello"; 
$myarray = array("One", "Two", "Three");
?>

3 Có lẽ một lỗi phổ biến bạn sẽ gặp phải với PHP là việc quên dấu chấm phẩy này. Điều này khiến PHP xử lý nhiều câu lệnh như một câu lệnh mà nó không thể hiểu được, do đó nó sẽ hiển thị lỗi Parse error message.

The $ symbol

Ký tự $ đã được sử dụng theo nhiều cách khác nhau bởi các ngôn ngữ lập trình khác nhau. Ví dụ, trong ngôn ngữ BASIC, nó được sử dụng để kết thúc tên biến, để biểu thị chúng dưới dạng chuỗi. Tuy nhiên, trong PHP bạn phải đặt ký tự $ trước tất cả các biến. Điều này là cần thiết để làm cho PHP phân tích cú pháp nhánh hơn, vì qua ký tự này nó biết ngay lập tức đây có phải là một biến hay không. Cho dù các biến đó là số, chuỗi, hay mảng. Như ví dụ dưới đây:

<?php
$mycounter = 1; 
$mystring = "Hello"; 
$myarray = array("One", "Two", "Three");
?>

Và đó là cú pháp bạn cần phải nhớ. Không giống như Python, ngôn ngữ yêu cầu rất nghiêm ngặt về cách thụt lề, cách sắp xếp code, còn đối với PHP thì nó cho phép bạn hoàn toàn tự do sử dụng (hoặc không sử dụng) thụt lề (indent) hay khoảng cách (space). Tuy nhiên, trong thực tế tôi khuyến khích bạn sử dụng indent hay space một cách hợp lý để code dễ đọc hơn khi thực hiện maintain.

Variables

Có một phép ẩn dụ đơn giản sẽ giúp bạn hiểu các biến PHP là gì. Đó là hãy nghĩ biến như một hộp diêm nhỏ (hoặc lớn), mà bạn đã viết tên hoặc tô lên bên trên, bên trong hộp diêm chưa que diêm (hoặc một thứ gì đó, ta gọi là giá trị)

String variables

Hãy tưởng tượng bạn có một hộp diêm, và bặt đặt tên và viết lên đó là username. Sau đó, bạn viết Fred Smith lên một tờ giấy, và đặt tờ giấy đó vào trong hộp diêm. Vâng, đó cũng là quy trình gán giá trị string cho biến, cụ thể như sau:

<?php
$mycounter = 1; 
$mystring = "Hello"; 
$myarray = array("One", "Two", "Three");
?>

4

Dấu ngoặc kép bên trên chỉ ra rằng “Fred Smith” là một string (chuỗi ký tự). Bạn phải đặt một string trong dấu ngoặc kép hoặc dấu nháy đơn, mặc dù 2 dấu này có chút sự khác biệt, và tôi sẽ giải thích trong phần sau. Và khi bạn muốn xem có gì trong hộp, thì mở nó ra và lấy mảnh giấy trong đó. Trong PHP ta có thể làm tương tự bằng cách như sau (Hiển thị nội dung của variable ra màn hình):

<?php
$mycounter = 1; 
$mystring = "Hello"; 
$myarray = array("One", "Two", "Three");
?>

5 Hoặc ta có thể gán giá trị đó cho một biến khác (copy tờ giấy và đặt nó vào một hộp diêm khác), như thế này:

<?php
$mycounter = 1; 
$mystring = "Hello"; 
$myarray = array("One", "Two", "Three");
?>

6 Bạn có thể nhập thử đoạn code dưới đây để xem cách nó chạy như thế nào nhé.

<?php 
$username = "Fred Smith";
echo $username;
echo "<br>";
$current_user = $username;
echo $current_user;

Bạn có thể chạy file này bằng cách nhập địa chỉ sau (có thể khác nhau tùy máy) vào address bar của trình duyệt:

<?php
$mycounter = 1; 
$mystring = "Hello"; 
$myarray = array("One", "Two", "Three");
?>

7

Tips: Trong trường hợp bạn đã thay đổi port khác với port 80 thì bạn phải nhập cụ thể port vào url. Ví dụ bạn đã thay đổi port thành 8080, thì url cần nhập là:

<?php $mycounter = 1; $mystring = "Hello"; $myarray = array("One", "Two", "Three"); ?>

8 Tóm lại, bạn cần nhớ port bạn đã setting là gì, và thêm nó vào url là được.

Kết quả là sẽ hiển thị ra 2 lần tên Fred Smith, lần đầu là giá trị của lệnh

<?php
$mycounter = 1; 
$mystring = "Hello"; 
$myarray = array("One", "Two", "Three");
?>

9 và lần sau là giá trị của lệnh

<?php 
$username = "Fred Smith";
echo $username;
echo "<br>";
$current_user = $username;
echo $current_user;

0

Numeric variables

Các biến không chỉ chứa giá trị chuỗi, mà nó có thể chứa cả giá trị số. Quay lại với hình ảnh hộp diêm, để lưu trữ số 17 trong biến

<?php 
$username = "Fred Smith";
echo $username;
echo "<br>";
$current_user = $username;
echo $current_user;

1, thì tương đương với việc ta đặt 17 hạt trong hộp diêm đó, bằng cách viết như sau:

<?php 
$username = "Fred Smith";
echo $username;
echo "<br>";
$current_user = $username;
echo $current_user;

2 Hoặc ta cũng có thể lưu giá trị thập phân (floating-point number). Cú pháp như sau:

<?php 
$username = "Fred Smith";
echo $username;
echo "<br>";
$current_user = $username;
echo $current_user;

3

Arrays

Vậy mảng (array) nghĩa là gì ? Đơn giản, ta có thể coi nó như là một vài hộp diêm được dán lại với nhau. Ví dụ, ta muốn lưu tên các cầu thủ trong một đội bóng đã có 5 người vào một mảng gọi là

<?php 
$username = "Fred Smith";
echo $username;
echo "<br>";
$current_user = $username;
echo $current_user;

4. Để làm được điều này, ta có thể dán 5 hộp diêm cạnh nhau, trong đó mỗi hộp diêm chứa một tờ giấy có ghi tên mỗi cầu thủ. Và bên trên của toàn bộ các hộp diêm, ta viết tên mảng là

<?php 
$username = "Fred Smith";
echo $username;
echo "<br>";
$current_user = $username;
echo $current_user;

5. Điều này tương đương với code PHP như sau:

<?php 
$username = "Fred Smith";
echo $username;
echo "<br>";
$current_user = $username;
echo $current_user;

6

Cú pháp này có vẻ phức tạp hơn một chút đúng không. Cụ thể, cũ pháp tạo mảng sẽ như sau:

<?php 
$username = "Fred Smith";
echo $username;
echo "<br>";
$current_user = $username;
echo $current_user;

7

Với 5 string bên trong. Mỗi string được đặt trong dấu nháy đơn, và được phân cách bằng dấu phẩy. Nếu ta muốn biết cầu thủ thứ 4 là ai, ta sử dụng cú pháp sau:

<?php 
$username = "Fred Smith";
echo $username;
echo "<br>";
$current_user = $username;
echo $current_user;

8 Lý do ta điền số 3 (không phải 4) ở câu lệnh trên là do phần tử đầu tiên trong mảng sẽ bắt đầu từ 0, do đó thứ tự của cầu thủ sẽ là từ 0 -> 4.

Two-dimensional arrays

Thực tế ta có thể làm rất nhiều việc với mảng. Ví dụ, thay vì dùng những gắn những hộp diêm theo từng hàng đơn, ta có thể làm thành những mảng ma trận 2 chiều hoặc nhiều chiều hơn. Ví dụ trò trơi cờ caro với 9 ô được sắp xếp theo hình vuông 3x3 là một ví dụ về mảng 2 chiều. Hoặc đối với ví dụ về những hộp diêm, ta hãy tưởng tượng rằng chúng là 9 hộp được dán vào nhau theo ma trận 3 hàng x 3 cột.

Để thực hiện điều này trong code PHP, bạn phải thiết lập một mảng chưa 3 mảng, ví dụ dưới đây là một ví dụ về trò trơi cờ caro

<?php
  $oxo = array(array('x', ' ', 'o'),
               array('o', 'o', 'x'),
               array('x', 'o', ' '));
?>

Một lần nữa, ta đã đi tăng thêm một bước nữa về sự phức tạp, tuy nhiên bạn sẽ quen dần nếu nắm vững cú pháp cơ bản về mảng. Ở trên, ta thấy rằng cấu trúc 3 array() được lồng vào trong 1 array(). Và đây chính là minh họa về mảng 2 chiều. Để return về phần tử thứ 3 của dòng thứ 2 của array, ta có dùng cú pháp PHP dưới đây:

<?php 
$username = "Fred Smith";
echo $username;
echo "<br>";
$current_user = $username;
echo $current_user;

9 -> Kết quả hiển thị ra sẽ là: x

Tips: Hãy nhớ rằng index của mảng bắt đầu từ 0, chứ không phải là 1. Do vậy, [1] trong ví dụ trên sẽ tham chiếu tới mảng thứ 2 trong 3 mảng đã khai báo, và [2] thì tham chiếu tới mảng thứ 3. Tóm lại, câu lệnh trên sẽ trả về giá trị của phần tử ở hàng thứ 2 - cột thứ 3.

Ngoài mảng 2 chiều, ta có thể tạo ra mảng nhiều chiều hơn bằng cách add thêm mảng trong đó. Cụ thể hơn, thì bạn google thêm nhé!

Variable-naming rules

Khi tạo các biến trong PHP, bạn phải tuân thủ 4 quy tắc sau:

  1. Tên biến nằm sau dấu đô la. Và phải bắt đầu bằng một chữ cái trong bảng chữ cái hoặc là dấu gạch dưới _
  2. Tên biến chỉ có thể chứa các ký tự a-z, A-Z, 0-9 và _ (gạch dưới).
  3. Tên biến không được chứa khoảng trắng. Nếu một tên biến phải bao gồm nhiều hơn một từ, bạn nên tách các từ bằng ký tự _ (gạch dưới) (ví dụ:

    <?php $oxo = array(array('x', ' ', 'o'),

               array('o', 'o', 'x'),  
               array('x', 'o', ' '));  
    
    ?>

    0).
  4. Tên biến phân biệt chữ hoa chữ thường. Biến

    <?php $oxo = array(array('x', ' ', 'o'),

               array('o', 'o', 'x'),  
               array('x', 'o', ' '));  
    
    ?>

    1 không giống với biến

    <?php $oxo = array(array('x', ' ', 'o'),

               array('o', 'o', 'x'),  
               array('x', 'o', ' '));  
    
    ?>

    2.

    Tips: Để cho phép mở rộng bảng ký tự ASCII bao gồm dấu, PHP support bytes từ 127 tới 255 trong tên biến. Trừ khi code của bạn đã sử dụng những ký tự dấu này rồi, thì tốt nhất là bạn nên tránh sử dụng chúng, bởi vì hầu hết các lập trình viên sử dụng bàn phím tiếng anh sẽ gặp khó khăn khi thao tác với chúng.

Operators

Operator (toán tử) cho phép bạn sử dụng các phép toán như là cộng, trừ, nhân và chia. Ngoài ra, nó cũng hỗ trợ các toán tử khác như là, string, so sánh, và toán tử logic. Trong PHP các phép toán trông khá giống với số học thuần túy, ví dụ code dưới đây sẽ in ra kết quả là 8:

<?php
  $oxo = array(array('x', ' ', 'o'),
               array('o', 'o', 'x'),
               array('x', 'o', ' '));
?>

3 Sau đây, chúng ta sẽ cùng tìm hiểu một chút về các toán tử mà PHP cung cấp nhé.

Arithmetic operators

Các toán tử số học sẽ thực hiện các phép toán học cơ bản. Trong đó bao gồm 4 phép toán chính như là: cộng, trừ, nhân, chia. Và phép toán liên quan tới tìm modulus (phần dư của phép chia), hoặc tăng, giảm giá trị của phần tử...

Assignment operators

Các toán tử này có vai trò gán giá trị cho các biến. Bao gồm các phép gán đơn giản như dấu =, và phức tạp hơn một chú như là +=, -=, ... vv. Ví dụ, toán tử += sẽ cộng thêm giá trị bên phải vào biến bên trái, thay vì là thay thế hoàn toàn giá trị bên trái. Do đó, nếu biến $count có giá trị là 5, thì câu lệnh dưới đây:

<?php
  $oxo = array(array('x', ' ', 'o'),
               array('o', 'o', 'x'),
               array('x', 'o', ' '));
?>

4 sẽ set giá trị của $count thành 6. Và cách viết quen thuộc hơn là như dưới đây:

<?php
  $oxo = array(array('x', ' ', 'o'),
               array('o', 'o', 'x'),
               array('x', 'o', ' '));
?>

5

Comparison operators

Các toán tử so sánh thường được sử dụng bên trong một logic chẳng hạn như câu lệnh if, trong đó bạn cần so sánh hai mục. Ví dụ, bạn muốn so sánh xem một biến đang tăng giá trị đã đạt đến giá trị mong muốn hay chưa, hoặc là giá trị một biến có nhỏ hơn giá trị đã set hay không ...vv.

Ta cần chú ý sự khác biệt giữa toán tử = và ==. Cái đầu tiên là toán tử gán, cái thứ 2 là toán tử so sánh. Ngay cả những lập trình viên có kinh nghiệm đôi khi cũng hay bị nhầm lẫn giữa chúng, nên bạn cẩn thận nhé.