Tìm hiểu PHP từ cơ bản cho người mới học – phần 1

Trang chủ Blog LẬP TRÌNH PHP Tìm hiểu PHP từ cơ bản cho người mới học – phần 1
Tìm hiểu PHP từ cơ bản cho người mới học – phần 1

PHP là một ngôn ngữ lập trình kịch bản phía máy chủ(Server) được tạo ra vào năm 1995 bởi Rasmus Lerdorf.

PHP được sử dụng để làm gì?

Tính đến tháng 09 năm 2021, Trong tổng số website toàn cầu thì có đến 79% sử dụng ngôn ngữ PHP. Hầu như là được sử dụng trên các trang web để tạo nội dung web động. Bao gồm:

  • Trang web và ứng dụng web (phía máy chủ)
  • Kịch bản dòng lệnh
  • Ứng dụng máy tính để bàn (GUI)

Thông thường, ngôn ngữ PHP được sử dụng để tạo trang web động. Ví dụ như: bạn có một trang blog, bạn có thể viết code PHP để lấy bài viết từ cơ sở dữ liệu(Database) và hiển thị ra ngoài.

Nền tảng mạng xã hội lớn nhất thế giới là Facebook được viết bằng PHP

PHP hoạt động như thế nào?

Tất cả code PHP chỉ được thực thi trên máy chủ web(Server), không phải trên máy tính của bạn. Ví dụ: khi bạn điền vào một form đăng ký một thông tin nào đó trên một trang web và nhấn gửi hoặc nhấp vào đường dẫn đến một trang web được viết bằng PHP, thì không có mã PHP nào chạy trên máy tính của bạn. Nhưng, dữ liệu trên form hoặc yêu cầu cho trang web được gửi đến một máy chủ web để được xử lý bởi các lệnh PHP. Sau đó, máy chủ web sẽ gửi lại HTML đã xử lý cho bạn và trình duyệt web của bạn hiển thị kết quả. Vì thế, bạn không thể nhìn thấy code PHP của một trang web, chỉ có HTML kết quả trả về mà các lệnh PHP đã tạo ra.

PHP là một ngôn ngữ thông dịch. Có nghĩa là khi bạn thay đổi code trong mã nguồn của mình, bạn có thể ngay lập tức kiểm tra những thay đổi này mà không cần phải biên dịch mã nguồn của bạn thành dạng nhị phân như một số ngôn ngữ khác. Bỏ qua bước biên dịch làm cho quá trình phát triển web nhanh hơn nhiều.

Code PHP được đặt giữa các thẻ <?php?> Và sau đó có thể được nhúng vào HTML.

bạn cũng có thể cài đặt tất cả PHP, MySQL & Web-server bằng cách cài đặt XAMPP (gói giải pháp máy chủ web đa nền tảng miễn phí và mã nguồn mở) hoặc các gói tương tự như WAMP

PHP Frameworks

Vì việc viết toàn bộ code từ đầu cho một trang web không thực sự cần thiết / khả thi đối với hầu hết các dự án vì có thể tái sử dụng, nên hầu hết các lập trình viên thường sử dụng các Frameworks để phát triển web. Vì một số lợi ích sau:

  • Có cấu trúc tốt để giúp phát triển nhanh chóng và hiệu quả
  • Có hỗ trợ sẵn đa ngôn ngữ
  • Theo mô hình MVC (Model-View-Controller)
  • Bạn không cần phải viết lại hàm(function) mỗi khi bạn tạo một dự án, vì có rất nhiều function được sử dụng chung

Basic Syntax

Các câu lện PHP có thể được đặt ở bất kỳ đâu trong tài liệu và luôn bắt đầu bằng <?php và kết thúc bằng ?>. Ngoài ra, các câu lệnh PHP kết thúc bằng dấu chấm phẩy (;).

Dưới đây là một đoạn code đơn giản sử dụng hàm echo để xuất văn bản “The Best PHP Examples” ra trang web:

<!DOCTYPE html>
<html>
<body>

<h1>Developer News</h1>

<?php echo "The Best PHP Examples"; ?>

</body>
</html> 

Được hiển thị như sau:

Developer News //của thẻ H1
The Best PHP Examples //của PHP

Comments

PHP hỗ trợ một số cách để comments code, comments dùng để đánh dấu hoặc giải thích code:

  • Comments một dòng:
  • Comments nhiều dòng:
<?php
  // Đây là comment một dòng
  
  # Bạn cũng có thể nhận xét một dòng như thế này
?>
<?php
  /*
  Đây là comment
  trên nhiều
  dòng
  */
?>

Phân biệt chữ hoa chữ thường

Tất cả các từ khóa, lớp(class) và hàm(functions) KHÔNG phân biệt chữ hoa chữ thường.

Trong ví dụ ở dưới, cả ba câu lệnh echo đều hợp lệ:

<?php
ECHO "Hello!<br>";
echo "Welcome to Developer News<br>";
EcHo "Enjoy all of the ad-free articles<br>";
?>

Tuy nhiên, tất cả các tên biến đều phân biệt chữ hoa chữ thường. Trong ví dụ ở dưới, chỉ dòng lệnh echo đầu tiên là hợp lệ và sẽ hiển thị giá trị của biến $name. $NAME$NaMe đều được xem là biến khác:

<?php
$name = "Hưng Huỳnh";
echo "Hi! My name is " . $name . "<br>";
echo "Hi! My name is " . $NAME . "<br>";
echo "Hi! My name is " . $NaMe . "<br>";
?>

Biến

Biến là cách chính để lưu trữ thông tin(chữ, số …) trong một chương trình PHP, như biến $name ở trên

Tất cả các biến trong PHP đều bắt đầu bằng ký hiệu đô la đứng đầu như $variable_name. Để tạo một biến:

$ten_bien = ‘giá trị của biến’;

Cú pháp:

<?php
  $greeting = "Hello!";

  $month = 9;

  $year = 2021;
?>

Quy tắc cho các biến PHP

  • Khai báo biến bắt đầu phải bằng $, theo sau là tên của biến
  • Tên biến chỉ có thể bắt đầu bằng chữ hoa hoặc chữ thường hoặc dấu gạch dưới (_) không dùng ngan (-)
  • Tên biến chỉ có thể chứa chữ cái, số hoặc dấu gạch dưới (A-z, 0-9 và _). Các ký tự đặc biệt khác như + -% (). & là không hợp lệ
  • Tên biến có phân biệt chữ hoa chữ thường

Một số ví dụ về tên biến hợp lệ:

  • $my_variable
  • $anotherVariable
  • $the2ndVariable

Các biến được xác định trước

PHP có một số từ khóa đặc biệt, nhưng bạn không thể sử dụng cho các biến của mình. Lý do là bản thân ngôn ngữ PHP đã định nghĩa các biến đó và chúng được sử dụng cho các mục đích đặc biệt. Một số ví dụ ở bên dưới, danh sách đầy đủ, hãy xem trang web PHP.

  • $this
  • $_GET
  • $_POST
  • $_SERVER
  • $_FILES

Các kiểu dữ liệu PHP

Có một số kiểu dữ liệu thông thường như sau:

  • String (“Hello”) là chuỗi
  • Integer (5) là số nguyên
  • Float (also called double) (1.0) là số thực
  • Boolean ( 1 or 0 ) là kiểu true/false
  • Array ( array(“I”, “am”, “an”, “array”) ) là mảng
  • Object
  • NULL
  • Resource

Strings

Strings là một chuỗi các ký tự. Có thể là bất kỳ văn bản nào bên trong dấu ngoặc (đơn hoặc kép):

Ví dụ:

$x = "Hello!";
$y = 'Hello!';

Strings là một chuỗi các ký tự. Bạn có thể sử dụng để lưu trữ bất kỳ thông tin văn bản nào trong web của mình.

Có một số cách khác nhau để tạo Strings(chuỗi) trong PHP.

Dấu nháy đơn

Các chuỗi có thể được tạo bằng dấu nháy đơn.

$name = 'Joe';

Để bao gồm một dấu nháy trong chuỗi bạn sử dụng dấu gạch chéo ngược.

$last_name = 'O\'Brian';

Dấu ngoặc kép

Bạn cũng có thể tạo chuỗi bằng cách sử dụng dấu ngoặc kép.

$name = "Joe";

Để bao gồm một dấu nháy kép trong chuỗi bạn sử dụng dấu gạch chéo ngược.

$quote = "Mary said, \"I want some toast,\" and then ran away.";

Để xuống dòng bạn thêm \n, tab bạn thêm \t.

Bạn cũng có thể nhúng chuỗi vào chuỗi:

$name = 'Joe';
$greeting = "Hello $name"; // in màn hình "Hello Joe"

Integers

Integers là số nguyên (một số không thập phân) từ -2,147,483,648 đến 2,147,483,647.

Quy tắc cho số nguyên:

  • Số nguyên phải có ít nhất một chữ số
  • Số nguyên không được có dấu thập phân
  • Số nguyên có thể là số dương hoặc số âm
$x = 5;

Floats

Là một số có dấu thập phân, là số thực.

$x = 5.01;

Booleans

Boolean đại diện cho hai trạng thái có: TRUE hoặc không: FALSE. Boolean thường sử dụng trong điều kiện if

$x = true;
$y = false;

Arrays

Một mảng lưu trữ nhiều giá trị trong một biến.

$colors = array("Magenta", "Yellow", "Cyan");

NULL

Null là một kiểu dữ liệu đặc biệt chỉ có giá trị null(rỗng). Các biến có thể được khai báo không có giá trị hoặc được làm trống rỗng bằng cách đặt giá trị thành null. Ngoài ra, nếu một biến được tạo mà không được gán giá trị, nó sẽ tự động được gán null.

<?php
$greeting = "Hello!";

// làm rỗng biến $greeting bằng null
$greeting = null;
?>

Classes và Objects

Classes là một cấu trúc dữ liệu để mô hình hóa mọi thứ trong thế giới thực và có thể chứa các thuộc tính và phương thức. Objects là các thể hiện của một Classes và là một cách thuận tiện để đóng gói các giá trị và chức năng cụ thể cho một Classes.

<?php
class Car {
    function Car() {
        $this->model = "Tesla";
    }
}

// Tạo Objects mới
$Lightning = new Car();

// In thuộc tính của Objects
echo $Lightning->model;
?>

PHP Resource

Resource là một biến đặc biệt, chứa một tham chiếu đến tài nguyên bên ngoài(file hoặc DB). Resource được tạo ra và sử dụng bởi các chức năng đặc biệt. Bạn có thể sử dụng hàm get_resource_type() để xem loại Resource.

<?php
// In màn hình: mysql link
$c = mysql_connect();
echo get_resource_type($c) . "\n";

// In màn hình: stream
$fp = fopen("foo", "w");
echo get_resource_type($fp) . "\n";

// in màn hình: domxml document
$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc) . "\n";

Giới thiệu một số Hàm xử lý chuỗi

Tìm độ dài của một chuỗi

Function strlen() sẽ trả về độ dài của một chuỗi

<?php
  echo strlen("Developer News"); // in màn hình: 14
?>

Đếm số từ trong một chuỗi

Hàm strwordcount() trả về số từ trong một chuỗi:

<?php
  echo str_word_count("Developer News"); // in màn hình: 2
?>

Đảo ngược một chuỗi

Hàm strrev() đảo ngược một chuỗi:

<?php
  echo strrev("Developer News"); // in màn hình: sweN repoleveD
?>

Tìm kiếm văn bản trong một chuỗi

Hàm strpos() tìm kiếm văn bản trong một chuỗi:

<?php
  echo strpos("Developer News", "News"); // In màn hình: 10
?>

Thay thế văn bản trong một chuỗi

Hàm str_replace() thay thế văn bản trong một chuỗi,

ví dụ bạn muốn thay thế “learn PHP” thành “Developer”:

<?php
  echo str_replace("learn PHP", "Developer", "learn PHPNews"); // In màn hình: Developer News
?>

Hằng số (define)

Hằng số là một loại biến trong PHP. Trong hằng số nhận ba đối số: tên khóa, giá trị và một Boolean (true hoặc false) xác định tên của khóa có phân biệt chữ hoa chữ thường hay không. Giá trị của hằng số không thể thay đổi sau khi nó được đặt.

Hằng số được sử dụng cho các giá trị hiếm khi thay đổi (ví dụ: mật khẩu cơ sở dữ liệu HOẶC khóa API).

Phạm vi

Điều quan trọng cần biết là không giống như biến, hằng LUÔN LUÔN có phạm vi toàn cục và có thể được truy cập từ bất kỳ hàm nào trong tập lệnh.

<?php
  define("learnPHP", "Learn to code and help nonprofits", false);
  echo learnPHP;
>?

// In ra màn hình: Learn to code and help nonprofits

Ngoài ra, khi bạn đang tạo các lớp(classes), bạn có thể khai báo các hằng số:

class Human {
  const TYPE_MALE = 'm';
  const TYPE_FEMALE = 'f';
  
  .............
}

Lưu ý: Nếu bạn muốn sử dụng các hằng số bên trong lớp Human, bạn có thể gọi bằng cách self::CONSTANT_NAME. Nếu bạn muốn sử dụng hằng số bên ngoài lớp, bạn cần gọi Human::CONSTANT_NAME.

Operators

PHP chứa tất cả các toán tử bình thường trong một ngôn ngữ lập trình.

Một “=” được gán giá trị cho biến và kép “==” hoặc ba “===” được sử dụng để so sánh.

“<”“>” để so sánh và “+=” sử dụng để thêm giá trị và gán giá trị đó cùng một lúc.

Lưu ý: việc sử dụng “.” để nối các chuỗi và “.=” để nối một chuỗi vào cuối chuỗi khác.

Từ PHP 7.0.X là toán tử Spaceship (<=>). Trả về -1, 0 hoặc 1 khi $a nhỏ hơn, bằng hoặc lớn hơn $b.

<?php

  echo 1 <=> 1; // 0
  echo 1 <=> 2; // -1
  echo 2 <=> 1; // 1

Xem tiếp bài 2: tại đây