CHIA SẺ KIẾN THỨC CÔNG NGHỆ

Bạn muốn tìm kiếm kiến thức về internet, công nghệ và MMO nhưng chưa biết tìm ở đâu - Blog này sẽ đem đến cho bạn điều đó

Công cụ và phần mềm hữu ích

Chia sẽ những công cụ và phần mềm hữu ích nhất, giúp bạn nhanh chóng đạt được kết quả mong muốn

Chia sẽ thông tin và liên kết

Nếu muốn chia sẽ thông tin và liên kết website, hãy liên hệ với tôi

Key, bản quyền phần mềm website nổi tiếng hiện nay

Chia sẽ key win, office, themes wordpress nổi tiếng

Tin tức kịp thời về những thay đổi công nghệ

Tin tức kịp thời về những thay đổi công nghệ

[PHP CƠ BẢN] CLASS VÀ OBJECT (LỚP VÀ ĐỐI TƯỢNG)

Trước khi mình giới thiệu qua một số hàm thường dùng trong WordPress, mình muốn nói trước về khái niệm Class (lớp) và Object (đối tượng) trong PHP vì rất nhiều hàm trong WordPress trả kết quả về là dạng đối tượng nên bạn nên đọc bài này để hiểu cách hoạt động của Lớp và Đối tượng. Bây giờ bạn cần biết trước rằng đối tượng là kiểu dữ liệu được tạo ra bởi một lớp.

ĐỊNH NGHĨA LỚP VÀ ĐỐI TƯỢNG

Lớp nghĩa là một khung kịch bản của một đối tượng, hoặc bạn có thể hiểu đối tượng được tạo ra từ một lớp. Trong lớp nó sẽ có các biến mà biến này ta gọi là các thuộc tính (properties), và lớp nó có thể chứa các hàm mà các hàm này chúng ta gọi nó là phương thức (method).

Mình có ví dụ sau, chiếc xe là lớp, trong chiếc xe đó nó có các thuộc tính như màu đỏ, 1 cầu 2 cầu, và các hành động như chạy, lùi, thắng ta xem như một phương thức.

Định nghĩa của Class và Object. Ảnh: phpenthusiast

Định nghĩa của Class và Object. Ảnh: phpenthusiast

Bây giờ chúng ta cùng viết một lớp tên là meeting như sau.

class meeting {

    public $name = ‘Thach’;

    function hello()     {         return $this->name . ‘ saying hello’;     }

    function goodbye()     {         return $this->name . ‘ saying goodbye’;     } }

Trong đó, mình tạo ra một thuộc tính $name trong lớp meeting, biến này mình có đặt từ khoá là public mà cái này tí nữa mình sẽ giải thích sau.

Kế đó mình tạo thêm một phương thức tên hello() trong lớp và nó sẽ trả về là giá trị của thuộc tính $name kèm theo một đoạn chữ. Lưu ý rằng khi mình viết code trong một lớp mà nếu mình muốn sử dụng một thuộc tính nào đó có trong lớp thì sẽ sử dụng từ khoá $this->tên_thuộc_tính.

Bây giờ chúng ta đã có 2 phương thức và một thuộc tính trong lớp. Chúng ta sẽ sử dụng nó bằng cách tạo ra một biến để hứng lớp này.

[code lang=”php”]$say = new meeting;[/code]

Nghĩa là khi sử dụng lớp, chúng ta cần cho biến nào hứng dữ liệu của lớp thì sẽ có từ khoá new đằng trước tên lớp cần sử dụng.

Bây giờ bạn dump cái biến $say, bạn sẽ thấy nó có kiểu dữ liệu là Object.

echo ‘<pre>’;
var_dump($say);
object(meeting)#117 (1) {
  ["name"]=>
  string(5) "Thach"
}

Bạn thấy, nó trả về dữ liệu kiểu đối tượng và cho ta thấy đối tượng đó có một thuộc tính tên là name. Bây giờ chúng ta có đối tượng $say rồi, chúng ta muốn sử dụng thuộc tính name trong đó thì chỉ cần viết là $say->name là nó sẽ ra.

Và nếu cần gọi một phương thức trong lớp thì chỉ cần viết $this->hello() hoặc $this->goodbye() là nó ra. Lưu ý là khi gọi phương thức và thuộc tính, sử khác biệt của nó là thuộc tính không có ký tự () phía sau như phương thức.

$say = new meeting;
echo $say->name . ‘</br>’;
echo $say->hello() . ‘</br>’;
echo $say->goodbye() . ‘</br>’;

TRUYỀN THAM SỐ VÀO LỚP

Như ở ví dụ trên, chúng ta có thuộc tính $name có giá trị sẵn là 'Thach'. Vậy chúng ta cần tự thiết lập giá trị này khi tạo đối tượng thì làm sao? Trước hết, chúng ta phải tạo ra cho nó thêm một phương thức nào đó mà nó sẽ có nhiệm vụ truyền tham số đã được khai báo khi tạo ra đối tượng.

class meeting {
    public $name;

    public function set_name( $ten )     {         $this->name = $ten;     }

    public function hello()     {         return $this->name . ‘ saying hello’;     } }

Ngay tại dòng 5 đến dòng 8, bạn có thể thấy mình tạo ra một phương thức tên set_name() với tham số là $ten để truyền tham số mà người dùng nhập vào.

Trong phương thức này, mình sẽ chỉ định cho thuộc tính $name của class sẽ sử dụng tham số truyền vào là $ten.

Cuối cùng là ở phương thức hello(), mình sẽ return lại giá trị mà thằng set_name() đã truyền vào với từ khoá $this->name.

Và khi sử dụng, chúng ta sẽ thiết lập tham số ở phương thức set_name().

$say = new meeting;
$say->set_name(‘Super Man’);
echo $say->hello();

Đơn giản vậy thôi.

PHƯƠNG THỨC KHỞI TẠO ( __CONSTRUCT() )

Phương thức khởi tạo này nghĩa là một phương thức mà nó sẽ được tự động thực thi khi chúng ta tạo ra một đối tượng mới, và các tham số trong phương thức này chúng ta có thể truyền nó vào ngay lúc tạo ra đối tượng.

Bây giờ quay lại ví dụ của bài truyền tham số, chúng ta dùng phương thức set_name() để truyền cái $name vào. Nhưng nếu bạn không muốn làm bước này, muốn truyền một tham số gì đó toàn cục trong lớp thì nên sử dụng phương thức __construct.

<?php
    class meeting {
        public $name;
        public $skill;
        function __construct($ten, $kynang)
        {
            $this->name = $ten;
            $this->skill = $kynang;
        }

        function hello()         {             return "Hello, my name is $this->name, my skill is $this->skill";         }     }          $say = new meeting(‘Thach’, ‘WordPress’);     echo $say->hello();

Nhưng bạn nhớ rằng công dụng của __construct() là sẽ thực hiện cái gì đó mỗi khi ta tạo ra một đối tượng từ lớp nên bạn đừng hiểu là nó chỉ có chức năng truyền tham số vào lớp nhé.

Hint: Lớp WP_Query trong WordPress có cách sử dụng tương tự, xem hướng dẫn.

KẾ THỪA LỚP

Kế thừa lớp nghĩa là bạn tạo ra một lớp con mới sẽ kế thừa lại một lớp nào đó với các thuộc tính và phương thức có sẵn, từ đó bạn có thể tuỳ biến lại code bên trong một phương thức hoặc thuộc tính nào đó.

Ví dụ, mình có lớp Car được gọi là lớp mẹ, trong đây sẽ có sẵn các thuộc tính và phương thức của một chiếc xe như màu sắc, chạy, lùi,…Sau đó mình tạo ra một lớp khác con tên BMW và nó sẽ kế thừa lại lớp Car này vì BMW nó cũng cần màu sắc, cũng cần chạy, lùi mà.

Trước hết chúng ta tạo lớp Car và khai báo thuộc tính cũng như các phương thức của nó.

<?php
    class Car {
        public $name;
        public $color;
        public $type;

        public function car_info()         {             // Chỉ là tránh lỗi ‘Undefined variable’             (!isset($output)) ? $output = null : ”;

            $output .= ‘<ul>’;             $output .= "<li>Name: $this->name </li>";             $output .= "<li>Color: $this->color </li>";             $output .= "<li>Type: $this->type </li>";             $output .= "</ul>";             return $output;         }     }

Sau đó chúng ta tạo ra lớp BMW và nó sẽ kế thừa lại lớp Car.

class BMW extends Car {
    public $name = ‘BMW’;
    public $color = ‘Red’;
    public $type = ‘Sport’;
}

Lúc này lớp BMW sẽ sử dụng được các thuộc tính và phương thức của lớp Car. Nếu cần tinh chỉnh lại thuộc tính hay phương thức nào thì cứ việc khai báo lại bên trong nó, như ví dụ trên là mình khai báo giá trị của các thuộc tính trong lớp BMW.

Bây giờ chúng ta thử sử dụng phương thức car_info() của lớp Car và vào lớp BMW nhé.

$bmw = new BMW;
echo $bmw->car_info();

VISIBILITY TRONG LỚP

Ở các ví dụ trên, bạn có thể thấy mình sử dụng từ khoá public khi khai báo thuộc tính và phương thức. Và từ khoá này được gọi là từ khoá visibility. Hiện tại trong lớp, bạn sẽ sử dụng 3 từ khoá phổ biến nhất hiện tại như:

  • public – Nếu phương thức hoặc thuộc tính nào sử dụng từ khoá này thì nghĩa là chúng ta có thể sử dụng nó ở bất cứ đâu, tức là có thể gọi ra bên trong một lớp hoặc bên ngoài một lớp, hoặc sử dụng trong một lớp con (lớp được kế thừa).
  • private – Phương thức/Thuộc tính nào sử dụng từ khoá này thì nó chỉ được truy cập bên trong một lớp của chính nó, không thể sử dụng cho lớp khác hoặc không thể gọi ra bên ngoài. Ví dụ bạn có thể sử dụng $this->name bên trong lớp như không thể gọi ra với $object->name ở bên ngoài lớp.
  • protected – Phương thức/Thuộc tính nào sử dụng từ khoá này là nó sẽ có thể được truy cập bên trong class hoặc các class kế thừa.

Ví dụ về public

<?php
    class pub_class {
        public $name = ‘Thach’;
        
        public function show()
        {
            return $this->name;
        }
    }
    $pub = new pub_class;
    echo $pub->name . ‘</br>’; // Hiển thị ‘Thach’
    echo $pub->show(); // Cũng hiển thị ‘Thach’

Ví dụ về private

<?php
    class pri_class {
        private $name = ‘Thach’;

        public function show()         {             return $this->name;         }     }     $pri = new pri_class;     echo $pri->name; // Lỗi ‘Fatal error: Cannot access private property pri_class::$name’     echo $pri->show(); // Hợp lệ vì show() là public

Ví dụ về protected

<?php

    class tp_parent {         protected $name = ‘Thach’;     }

    class tp_child extends tp_parent {         public function show()         {             return $this->name;         }     }

$child = new tp_child; echo $child->show(); // Hợp lệ vì phương thức này sử dụng thuộc tính $name của class mẹ

LỚP TRỪU TƯỢNG (CLASS ABSTRACTION)

Một lớp trừu tượng nghĩa là nó có một hoặc nhiều phương thức là trừu tượng. Phương thức trừu tượng thì nghĩa là nó phải bắt buộc được khai báo ở các lớp con. Bạn nên lưu ý rằng dù lớp của bạn có bao nhiêu phương thức trừu tượng thì lớp đó vẫn là lớp trừu tượng.

Để khai báo lớp trừu tượng thì chúng ta chỉ việc thêm từ khoá abstract đằng trước tên class và tên phương thức mà ta muốn làm trừu tượng. Lưu ý là phương thức khai báo trừu tượng sẽ không chứa bất cứ cái gì, ngoại trừ tham số.

<?php

    abstract class tp_parent {         protected $args;

        abstract protected function set_args(); // Phương thức trừu tượng không được chứa cái quần gì cả

        public function show_args()         {             return $this->set_args();         }     }

Code ở trên là chúng ta tạo ra một lớp tên tp_parent và nó là trừu tượng vì có từ khoá abstract ở trước. Bên trong nó ta có thuộc tính $args là dạng protected để ta có thể sử dụng nó ở các lớp con nhưng không cho phép truy cập từ bên ngoài.

Sau đó chúng ta có phương thức trừu tượng tên set_args(), tức là phương thức này sẽ phải được bắt buộc khai báo ở lớp con. Cuối cùng là ta có phương thức public là show_args() để có thể sử dụng nó bên ngoài cho mục đích lấy dữ liệu hiển thị, và chức năng của phương thức này là hiển thị kết quả trả về của phương thức set_args() sau khi nó xử lý.

Bây giờ chúng ta tạo ra một lớp con kế thừa lại lớp mẹ và thử không khai báo phương thức set_args() cho nó xem cái gì xảy ra nhé.

class tp_child extends tp_parent {}

$child = new tp_child; echo print_r ( $child->show_args() );

Lúc này bạn sẽ nhận được lỗi này:

Fatal error: Class tp_child contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (tp_parent::set_args)

Như vậy, bạn phải khai báo phương thức set_args() thì mới được. Ta sửa lại như sau:

<?php

class tp_child extends tp_parent {     protected function set_args()     {         $this->args = array(             ‘name’    => ‘Thach Pham’,             ‘age’    => 23         );         return $this->args;     } }

$child = new tp_child; echo print_r ( $child->show_args() );

Kết quả nó sẽ trả về array của thằng set_args().

LỜI KẾT

Trong bài này mục đích của mình là muốn cho bạn hiểu thật kỹ về khái niệm Class và Object trong PHP, và khi code chúng ta hoàn toàn sử dụng Class và Object người ta gọi đó là Lập trình hướng đối tượng. Như vậy lập trình hướng đối tượng không phải là khó, chỉ là bạn chưa biết cách nên nghe tên nó có vẻ cao sang nhưng thực ra nó cũng chỉ là việc sử dụng class, kế thừa rồi sử dụng các đối tượng tạo ra từ class mà thôi.

Tạm thời ở đây bạn đã hiểu được dữ liệu đối tượng rồi. Ở bài sau, mình sẽ nói qua cho bạn về một số hàm tiêu biểu trong WordPress để bạn sử dụng, lúc đó bạn sẽ làm việc với đối tượng nhiều hơn nữa.

Share:

HTML là gì ?

 HTML

HTML là viết tắt của ngôn ngữ đánh dấu siêu văn bản. Nó được tạo từ các từ khóa và lệnh mà các nhà thiết kế web sử dụng để tạo trang web.


Siêu văn bản là văn bản có các liên kết mà người đọc có thể chỉ cần nhấp vào để đi tới trang khác hoặc phần khác của trang. Trong khi đó, ngôn ngữ đánh dấu sử dụng thẻ hoặc văn bản thuần túy có các dấu hiệu đặc biệt để xác định các phần của trang, chẳng hạn như đầu trang và chân trang cũng như các thành phần khác, bao gồm bảng và hình ảnh.


HTML được coi là một trong ba công cụ thiết yếu trong việc tạo trang web: HTML cung cấp cấu trúc hoặc cách thức văn bản, hình ảnh, v.v. sẽ xuất hiện trên trang web. CSS (các biểu định kiểu xếp tầng) đặt các thuộc tính trực quan của các thành phần này, chẳng hạn như màu sắc, định dạng và bố cục. Trong khi đó, Javascript làm cho các thành phần này hoạt động theo những cách nhất định tùy thuộc vào hành động của người dùng. Ví dụ: kích thước phông chữ của văn bản có thể tăng lên khi người dùng di chuột hoặc nhấp vào nút trên trang.


Để viết HTML, bạn sẽ cần một trình soạn thảo văn bản, như Notepad, Brackets hoặc Atom. Trình soạn thảo HTML đảm bảo mã hóa của bạn rõ ràng và hoạt động tốt. Chúng giúp giảm lỗi bằng cách tự động chèn thẻ (tự động hoàn thành) và các thành phần phổ biến khác hoặc thông qua gỡ lỗi.


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

HTML là ngôn ngữ mặc định của các trang web và tài liệu dựa trên web. Nó giúp trình duyệt hiểu cấu trúc và kiểu dáng của tài liệu hoặc tệp để xem qua internet. Nó cho phép các trang web của bạn lưu trữ âm thanh, video, bảng tính và các ứng dụng khác. Nó cũng tạo điều kiện thuận lợi cho việc điều hướng trong các trang web hoặc giữa các trang web thông qua siêu văn bản.


Hơn nữa, người làm trang web có thể sử dụng HTML để thiết kế các biểu mẫu đặt hàng sản phẩm, đặt chỗ hoặc tìm kiếm thông tin. Do đó, HTML là khối xây dựng cơ bản để xây dựng thương hiệu của bạn và điều hành một trang web thương mại điện tử hoặc một doanh nghiệp dựa trên đăng ký trực tuyến.


Điều gì tạo nên một tài liệu HTML?

Các thành phần chính của tài liệu HTML là thẻ và phần tử. Họ cho trình duyệt của bạn biết cách hiển thị nội dung của bạn. Thẻ bắt đầu và kết thúc bằng dấu ngoặc nhọn hoặc dấu 'nhỏ hơn' và 'lớn hơn'. Các chữ cái ở giữa chúng được gọi là nội dung phần tử.


Phần sau đây tạo nên cấu trúc cơ bản của một trang HTML (theo thứ tự xuất hiện):


Khai báo loại tài liệu (DTD)

<!DOCTYPE html> xuất hiện ở đầu hoặc trên cùng của tài liệu HTML. Nó cho trình duyệt biết phiên bản HTML nào đã được sử dụng để tạo ra trang.


Phần tử gốc HTML

<html>, được viết bên dưới DTD, hoạt động giống như 'vùng chứa chính' chứa tất cả các phần tử khác. Nó có thể chỉ định ngôn ngữ của tài liệu HTML. Ví dụ <html lang='en-US'> có nghĩa là trang được viết bằng tiếng Anh Mỹ.


head

<head> mà bạn sẽ tìm thấy giữa <html><body>, chứa siêu dữ liệu mô tả thông tin về trang. Chúng bao gồm:


<title> hoặc chủ đề tổng thể của trang web. Nó tách biệt nhưng phải khớp với thẻ tiêu đề xuất hiện trong nội dung.

<style> xác định cách các phần tử sẽ hiển thị trong trình duyệt. Điều này bao gồm màu của dòng tiêu đề, căn chỉnh văn bản, màu nền của nội dung, v.v.

<link> cho biết các tài nguyên (tức là một trang web khác hoặc biểu định kiểu bên ngoài) được liên kết với trang HTML.

<meta> chứa từ khóa, tác giả và mô tả trang.

<base> đề cập đến URL mặc định.

Thân hình

<body> là phần chính của tài liệu chứa thông tin mà trình duyệt hiển thị trên màn hình. Nó có thể bao gồm những điều sau đây:


Tiêu đề có tiêu đề trang web, logo, điều hướng chính và thanh tìm kiếm.

Nội dung chính bao gồm tiêu đề hoặc tiêu đề bài viết, nội dung bài viết, ngày đăng, tác giả, v.v.

Các thanh bên hiển thị các tiện ích và điều hướng phụ, chẳng hạn như các kho lưu trữ theo danh mục hoặc ngày.

Phần chân trang cung cấp thông tin liên hệ, liên kết xã hội, bản quyền và điều hướng cấp ba.

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

Tác giả trang web nhập tài liệu HTML được lưu với phần mở rộng .html hoặc .htm (filename.html hoặc filename.htm). Sau đó, tệp này được tải lên Worldwide Web, nơi sẽ hiển thị hình thức trực tuyến của nó.


Để mở tệp HTML từ PC của bạn, hãy đi tới File Explorer, nhấp chuột phải vào tệp (hoặc nhấp đúp vào tệp nếu bạn đang sử dụng máy Mac) và chọn 'Mở bằng' từ menu để khởi chạy trong trình duyệt ưa thích của bạn. Google Chrome, Mozilla Firefox, Safari và các trình duyệt khác có thể nhận dạng và đọc định dạng này. Bạn cũng có thể khởi chạy trình duyệt của mình, nhấn Ctrl+O để kéo menu 'mở' lên và nhấp đúp vào tệp html của bạn.


Các trình duyệt sử dụng các phần tử HTML để diễn giải nội dung của trang và hiển thị chúng một cách chính xác trên màn hình một cách gọn gàng và có định dạng.

Share: