Chức năng công khai và riêng tư trong php là gì?

Từ khóa là những từ được sử dụng làm dự trữ trong một chương trình có ý nghĩa đặc biệt được gán cho chúng. Chúng có thể là một lệnh hoặc tham số. Giống như mọi ngôn ngữ lập trình khác, PHP cũng có một tập hợp các từ đặc biệt gọi là từ khóa không thể dùng làm tên biến cho các mục đích khác. Chúng còn được gọi là tên dành riêng

Một từ khóa riêng tư, như tên gợi ý, là từ khóa chỉ có thể được truy cập từ bên trong lớp mà nó được định nghĩa. Tất cả các từ khóa theo mặc định thuộc danh mục công khai trừ khi chúng được chỉ định là riêng tư hoặc được bảo vệ. Từ khóa riêng giúp ích cho mục đích bảo mật bằng cách cung cấp khả năng hiển thị ít nhất cho từ khóa trong toàn bộ mã. Nó cũng dễ khúc xạ hơn khi chỉ có một lớp duy nhất gọi từ khóa này

Ngoài các từ khóa riêng tư, cũng có thể có các phương thức riêng tư. Trong lập trình hướng đối tượng, các phương thức là tập hợp các thủ tục được liên kết với bất kỳ lớp nào. Trong trường hợp các phương thức riêng tư, chúng chỉ được phép gọi trong các phương thức thuộc cùng một lớp hoặc mô-đun của nó

Gói phát triển phần mềm tất cả trong một(hơn 600 khóa học, hơn 50 dự án)

Chức năng công khai và riêng tư trong php là gì?
Chức năng công khai và riêng tư trong php là gì?
Chức năng công khai và riêng tư trong php là gì?
Chức năng công khai và riêng tư trong php là gì?

Chức năng công khai và riêng tư trong php là gì?
Chức năng công khai và riêng tư trong php là gì?
Chức năng công khai và riêng tư trong php là gì?
Chức năng công khai và riêng tư trong php là gì?

Giá
Xem các khóa học

Hơn 600 khóa học trực tuyến. hơn 50 dự án. Hơn 3000 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập trọn đời
4. 6 (86.629 xếp hạng)

Ngoài ra còn có các hằng và thuộc tính riêng có thể được khai báo. Khả năng hiển thị trong những trường hợp này chỉ bị giới hạn giữa các lớp của chúng chứ không phải các thể hiện. Nếu hai đối tượng cùng loại thì một đối tượng có thể gọi phương thức riêng của đối tượng khác

Bắt đầu khóa học phát triển phần mềm miễn phí của bạn

Phát triển web, ngôn ngữ lập trình, kiểm thử phần mềm và những thứ khác

cú pháp

Bất kỳ biến, thuộc tính hoặc phương thức nào cũng có thể được khai báo là riêng tư bằng cách đặt trước nó bằng từ khóa “riêng tư”

class MyClass()
{
private variable_name;
private Method_name();
private $priv = 'Private property';
}

Ví dụ về sở hữu tư nhân

Hãy cho chúng tôi hiểu hoạt động của thuộc tính riêng tư trong PHP bằng cách lấy ví dụ dưới đây

Mã số

<?php
/**
* Definition of PHPExample
*/
class PHPExample
{
public $public = 'Public property';
protected $protected = 'Protected property';
private $private = 'Private property';
function displayValue()
{
echo $this->public;
echo "\n";
echo $this->protected;
echo "\n";
echo $this->private;
echo "\n";
}
}
$val = new PHPExample();
echo $val->public; // Public will work without any error
echo "\n";
echo $val->protected; // Uncaught Error: Cannot access protected property PHPExample::$protected in /workspace/Main.php:21
echo $val->private; // Uncaught Error: Cannot access private property PHPExample::$private in /workspace/Main.php:22
$val->displayValue(); // Displays all 3 Public, Protected and Private properties
/**
* Definition of PHPExample2
*/
class PHPExample2 extends PHPExample
{
// It supports redeclaration of public and protected properties and not private
public $public = 'Public2 property';
protected $protected = 'Protected2 property';
function displayValue()
{
echo $this->public;
echo "\n";
echo $this->protected;
echo "\n";
echo $this->private; //Undefined property: PHPExample2::$private in /workspace/Main.php on line 39
}
}
$val2 = new PHPExample2();
echo $val2->public; // Public will work without error
echo "\n";
echo $val2->protected; // Fatal Error
echo $val2->private; // Undefined property: PHPExample2::$private in /workspace/Main.php on line 46
$val2->displayValue(); // Shows Public2, Protected2, Undefined
?>

Đầu ra 1

Chức năng công khai và riêng tư trong php là gì?

Đầu ra 2. Sau khi comment ở dòng 23

Chức năng công khai và riêng tư trong php là gì?

Đầu ra 3. Sau khi bình luận trên dòng 24

Chức năng công khai và riêng tư trong php là gì?

Đầu ra 4. Sau khi bình luận ở dòng 46, 47 và 40

Chức năng công khai và riêng tư trong php là gì?

Giải thích cho đoạn mã trên. Khi bạn chạy mã này hoàn toàn, bạn chắc chắn sẽ gặp lỗi nghiêm trọng ở một vài số dòng như dòng. 25,26,45,52,53. Đầu tiên chúng ta khai báo cả 3 thuộc tính public, private và protected trong lớp chính PHPExample để hiển thị các từ tương ứng của chúng. Nội tuyến 25, chúng tôi đang cố gắng truy cập cả 3 thuộc tính từ lớp PHPExample. Vì các ví dụ riêng tư và được bảo vệ không thể truy cập được bên ngoài lớp của chúng, nên chúng tôi gặp lỗi nghiêm trọng ở đầu ra như được hiển thị và chỉ thuộc tính công khai được hiển thị

Trong nửa sau của mã, chúng tôi đang khai báo một lớp PHPExample2 khác, nơi chúng tôi đang khai báo lại các giá trị hiển thị cho các thuộc tính được bảo vệ và công khai. Điều tương tự không được phép đối với riêng tư và sau đó chúng tôi đang thực hiện hành động tương tự như trong nửa đầu. Vì chúng tôi đang cố gọi thuộc tính riêng tư không được khai báo ở đây, nên chúng tôi gặp lỗi thuộc tính không xác định

Ví dụ về phương thức và từ khóa riêng tư

Hãy cho chúng tôi hiểu hoạt động của phương thức riêng tư và từ khóa trong PHP bằng cách lấy ví dụ dưới đây

Mã số

<?php
class NameExample {
// Declaring first name as private value
private $first_name;
// Declaring last name as private value
private $last_name;
public $public = 'Displaying from public method';
private $private ='Displaying from private method';
// private function for setting the value for first_name
private function fName($first_name) {
$this->$first_name = $first_name;
echo $this -> private;
}
// public function for setting the value for last_name
public function lName($last_name) {
$this->$last_name = $last_name;
echo $this -> public;
}
// public function to display full name value
public function dispName() {
echo "My name is: " . $this->$first_name . " " . $this->$last_name;
}
}
// Creating a new object named $arun of the class
$arun = new NameExample();
// trying to access private class variables
$arun->$first_name = "Arun"; // invalid
$arun->$last_name = "Sharma"; // invalid
// calling the public function to set $first_name and $last_name
$john->fName("John");
$arun->lName("Wick");
// $arun-> dispName();
?>

Đầu ra 1

Chức năng công khai và riêng tư trong php là gì?

Đầu ra 2. Sau khi bình luận dòng 32, 33 và 36

Chức năng công khai và riêng tư trong php là gì?

Giải thích cho đoạn mã trên. Trong ví dụ trên, $first_name và $last_name được khai báo là các biến riêng của lớp NameExample và do đó chúng không thể được gọi trực tiếp bằng đối tượng lớp. Do đó, khi chúng tôi thử chạy mã lần đầu tiên, chúng tôi gặp lỗi là “Biến không xác định. first_name trong /workspace/NameExample. php trên dòng 32” và tương tự với dòng 33. Khi comment 2 dòng này và chạy lại code thì báo lỗi “Uncaught Error. Gọi tên hàm thành viên() trên null trong /workspace/NameExample. php. 36”

Điều này là do chúng tôi đã khai báo hàm fName là riêng tư và nó đang cố truy cập cùng một. Mã chạy trơn tru khi dòng 36 cũng được nhận xét và hiển thị từ tên phương thức vì đây là phương thức công khai

Ưu điểm của việc sử dụng riêng tư trong PHP

Dưới đây là những Ưu điểm của việc Sử dụng Riêng tư trong PHP

  1. Các biến riêng tư vẫn có thể được truy cập bằng cách sử dụng “getters” và “setters” giúp lập trình viên có nhiều quyền kiểm soát hơn đối với việc truy cập dữ liệu
  2. Inturn riêng có nghĩa là đóng gói cũng phân tách các biến từ lớp này sang lớp khác do đó bảo vệ các thay đổi được thực hiện đối với lớp bên trong
  3. Hành vi của các biến riêng tư bị hạn chế bên trong lớp cụ thể đó và cũng tránh nhầm lẫn
  4. Các biến riêng tư có thể dễ dàng được triển khai lại mà không có nguy cơ vi phạm mã ở bất kỳ đâu

Quy tắc và Quy định dành cho Riêng tư trong PHP

Sau đây là các Quy tắc và Quy định phải tuân theo đối với Riêng tư trong PHP

  1. Đối với bất kỳ thành viên biến hoặc phương thức nào, người ta phải luôn khai báo phạm vi của nó là thuộc về công khai, được bảo vệ hay riêng tư
  2. Theo thứ tự các phương pháp, người ta nên làm theo thứ tự sau. công khai,> được bảo vệ> riêng tư
  3. Các biến riêng tư không thể được truy cập từ lớp con được khai báo bằng cách mở rộng chúng từ lớp chính nơi chúng được khai báo. Tuy nhiên, nó có thể được truy cập nếu cùng một thuộc tính riêng được khai báo lại trong lớp con nhưng không nên làm như vậy
  4. Do đó, một phương thức riêng được khai báo trong một lớp chỉ có thể được gọi bên trong lớp đó

Phần kết luận

Riêng tư là một cách hạn chế khả năng truy cập của các biến, phương thức hoặc thuộc tính của một lớp. Chúng chỉ có thể được truy cập trong lớp mà chúng được khai báo chứ không phải từ bất kỳ lớp con nào mở rộng từ nó. Bất kỳ thuộc tính được bảo vệ nào từ lớp cha có thể bị lớp con ghi đè và đặt ở chế độ công khai nhưng không thể đặt ở chế độ riêng tư

Bài viết được đề xuất

Đây là hướng dẫn về Riêng tư trong PHP. Ở đây chúng ta thảo luận về hai ví dụ khác nhau về Private trong PHP với các ưu điểm cũng như các quy tắc và quy định phải tuân theo trong đó. Bạn cũng có thể xem qua các bài viết liên quan khác của chúng tôi để tìm hiểu thêm –

Chức năng công khai và riêng tư là gì?

Vậy sự khác biệt giữa chức năng công khai và chức năng riêng tư là gì? . A private function can only be used inside of it's parent function or module. Một chức năng công cộng có thể được sử dụng bên trong hoặc bên ngoài nó . Tuy nhiên, các chức năng công cộng có thể gọi các chức năng riêng tư bên trong chúng, vì chúng thường chia sẻ cùng một phạm vi.

Chức năng riêng tư trong PHP là gì?

Từ khóa riêng tư là công cụ sửa đổi quyền truy cập . Nó đánh dấu một thuộc tính hoặc phương thức là riêng tư. Các thuộc tính và phương thức riêng chỉ có thể được sử dụng bởi lớp trong đó thuộc tính hoặc phương thức được định nghĩa. Các lớp dẫn xuất và mã bên ngoài không thể sử dụng chúng.

Những gì được bảo vệ so với các chức năng riêng tư?

được bảo vệ. Một biến hoặc phương thức được bảo vệ không thể được truy cập bởi người dùng của lớp nhưng có thể được truy cập bên trong một lớp con kế thừa từ lớp đó. Riêng tư. Một biến hoặc phương thức riêng chỉ có thể được truy cập nội bộ từ lớp mà nó được định nghĩa

Sự khác biệt giữa bảo vệ công cộng và tư nhân là gì?

Nếu thành viên lớp được khai báo là công khai thì nó có thể được truy cập ở mọi nơi. Nếu các thành viên của lớp được khai báo là được bảo vệ thì nó chỉ có thể được truy cập trong chính lớp đó và bằng cách kế thừa các lớp con. Nếu các thành viên của lớp được khai báo là riêng tư thì nó chỉ có thể được truy cập bởi lớp xác định thành viên đó