Đây là một nguồn tài nguyên miễn phí từ khóa học trực tuyến của tôi, từ ý tưởng đến khi ra mắt, nơi tôi dạy bạn cách xây dựng một ứng dụng web Laravel đầy đủ, từng bước một, với tốc độ của người mới bắt đầu. Tìm hiểu thêm →my online course, From Idea To Launch, where I teach you how to build a full Laravel web application, step by step, at beginner's speed.
Learn more → Các lớp có thể tái sử dụng, các mô-đun mã khép kín, được sử dụng cho các mục đích cụ thể. are reusable, self-contained modules of code, used for specific purposes. Các lớp học là một cách tuyệt vời để tổ chức mã bởi vì, như đã đề cập, họ có thể tái sử dụng vừa khép kín. Dưới đây, tôi sẽ cung cấp cho bạn một danh sách cách tạo và sử dụng các lớp trong PHP. Để xác định một lớp, bạn sử dụng cú pháp sau: Vì vậy, trong một lớp, bạn có thể xác định các biến và chức năng: ';
public $p_close = ' Và, khi tham chiếu các biến riêng của lớp từ trong một trong các chức năng của nó, bạn sử dụng ';
public $p_close = ' value-of-textTạo một lớp học
class Html
{
}
Các lớp có thể chứa các biến và chức năng
class Html
{
public $p_open = '
$this
để tham khảo bản thân lớp:
class Html
{
public $p_open = '
Nhưng làm thế nào để bạn truy cập chức năng đó? Ahh, vâng, bằng cách tạo ra một ví dụ của lớp.instance of the class.
Tạo một thể hiện của một lớp học
Nếu bạn nghĩ về lớp là loại mẫu của một người khác, bạn có thể tạo một đối tượng trên mạng dựa trên mẫu đó; Đó là đối tượng của người Viking được gọi là một thể hiện lớp.instance.
Bạn tạo một thể hiện của một lớp bằng cách sử dụng từ khóa mới, theo sau là tên lớp học:instance of a class using the new keyword, followed by the class’s name:
// creates an instance of the Html class
$myPage = new Html;
Và sau đó bạn có thể truy cập tất cả các chức năng của lớp - thông qua thể hiện của bạn - sử dụng mũi tên quen thuộc, ->
, cú pháp:
// creates an instance of the Html class
$myPage = new Html;
// prints Whoomp, there it is!
$myPage->printParagraph['Whoomp, there it is!'];
Các lớp cũng có khả năng mượn chức năng của các lớp khác.
Mở rộng một lớp học
Một lớp có thể mở rộng một lớp khác để mượn chức năng của lớp khác.extend another class in order to “borrow” the other class’s functionality.
Vì vậy, hãy để nói rằng chúng tôi có một lớp
class Html
{
public $p_open = '';
public $p_close = '
';
public function printParagraph[$text]
{
}
}
0 với các biến để thể hiện thông tin của xe và một chức năng để hiển thị thông tin của nó:
class Vehicle
{
public $make = '';
public $model = '';
public $year = '';
public function printInfo[]
{
// prints " "
echo $this->year . ' ' . $this->make . ' ' . $this->model;
}
}
Nhưng sau đó, hãy để nói rằng chúng tôi sau đó muốn tạo một lớp
class Html
{
public $p_open = '';
public $p_close = '
';
public function printParagraph[$text]
{
}
}
1 để đại diện cho một loại xe, xe hơi cụ thể. Chúng ta có thể tạo lớp đó và mở rộng lớp
class Html
{
public $p_open = '';
public $p_close = '
';
public function printParagraph[$text]
{
}
}
0 - sử dụng từ khóa
class Html
{
public $p_open = '';
public $p_close = '
';
public function printParagraph[$text]
{
}
}
3 - sẽ cho phép:- mượn tất cả các chức năng lớp
0;class Html { public $p_open = '
'; public $p_close = '
'; public function printParagraph[$text] { } } - và thêm chức năng ________ 11 cụ thể của riêng mình.
Điều đó sẽ hoạt động như vậy:
class Car extends Vehicle
{
public function honk[]
{
// prints "honk, honk!"
echo "honk, honk!";
}
}
// a car!
$car = new Car;
// this all works, because Cars
// have access to Vehicle functionality
$car->year = 1981;
$car->make = 'DeLorean';
$car->model = 'DMC-12';
// prints "1981 DeLorean DMC-12"
$car->printInfo[];
// but it can *also* honk — specific to Cars
$car->honk[]; // prints "honk, honk!"
Cuối cùng, nhưng không kém phần quan trọng, tất cả những gì kinh doanh này với
class Html
{
public $p_open = '';
public $p_close = '
';
public function printParagraph[$text]
{
}
}
6 ?! Có
class Html
{
public $p_open = '';
public $p_close = '
';
public function printParagraph[$text]
{
}
}
7 không?Bạn betcha. Đây là…
class Html
{
public $p_open = '';
public $p_close = '
';
public function printParagraph[$text]
{
}
}
6 so với
class Html
{
public $p_open = '';
public $p_close = '
';
public function printParagraph[$text]
{
}
}
7
class Html
{
public $p_open = '';
public $p_close = '
';
public function printParagraph[$text]
{
}
}
class Html
{
public $p_open = '';
public $p_close = '
';
public function printParagraph[$text]
{
}
}
Hãy để tôi làm cho điều này đơn giản nhất có thể.
Khi bạn đi trước một biến hoặc chức năng trong một lớp có
class Html
{
public $p_open = '';
public $p_close = '
';
public function printParagraph[$text]
{
}
}
6, biến/chức năng có thể được truy cập bên ngoài chính lớp.can be accessed outside of the class itself.Khi bạn đi trước một biến hoặc chức năng trong một lớp có
class Html
{
public $p_open = '';
public $p_close = '
';
public function printParagraph[$text]
{
}
}
7, biến/hàm chỉ có thể được truy cập từ bên trong lớp.can only be accessed from within the class.Vì vậy, hãy để Lừa lấy ví dụ thực tế. Giả sử bạn muốn tạo một lớp
class Html
{
public $p_open = '';
public $p_close = '
';
public function printParagraph[$text]
{
// prints value-of-text
echo $this->p_open . $text . $this->p_close;
}
}
2 để thiết lập các kết nối cơ sở dữ liệu. Lớp đó sẽ cần thông tin đăng nhập kết nối, nhưng nó chỉ cần truy cập chúng từ bên trong lớp.Mặt khác, nó cần truy cập vào kết nối cơ sở dữ liệu bên ngoài lớp - nếu không thì nó sẽ khá vô dụng!
Bạn có thể định nghĩa một lớp như vậy như vậy:
class Database
{
// only accessible *inside* of the class
private $servername = 'changeme';
private $username = 'change';
private $password = 'change';
// accessible *outside* of the class
public $connection = null;
public function connect[]
{
// INSIDE the class, so can access it all!
$this->connection = connect_function[$this->servername,
$this->username, $this->password];
}
}
// Connect to the database!
// works because the connect function is public
$db = new Database;
$db->connect[];
// use the connection for something [e.g. to query]
// works because the connection variable because it's public
$result = $db->connection->query['…'];