Php tự trả lại tĩnh

Trong PHP, từ khóa self và this được dùng để chỉ các thành viên của lớp trong phạm vi của một lớp. Các thành viên của lớp có thể là biến hoặc hàm. Các từ khóa PHP này khác với hành vi tĩnh của các thành viên lớp

PHP từ khóa này đề cập đến một thành viên không tĩnh của một lớp đối với thể hiện của lớp được tạo. Vì vậy, các giá trị hoặc đối số của các thành viên lớp sẽ được thay đổi dựa trên giá trị mà thể hiện của lớp được tạo

Nếu chúng ta sử dụng từ khóa này mà không có ngữ cảnh đối tượng để chỉ dữ liệu tĩnh, thì lỗi sau sẽ được hiển thị cho trình duyệt

Fatal error: Using $this when not in object context in .. on Line

Vì vậy, chúng ta nên sử dụng từ khóa self ở những nơi như vậy để chỉ các thành viên tĩnh của lớp để tránh lỗi trên. Trong khi sử dụng self để chỉ dữ liệu tĩnh, chúng ta cần sử dụng toán tử phân giải phạm vi. Ví dụ,


Trong mẫu mã trên, chúng tôi đã chỉ ra cách biến tĩnh $menu được gọi là tự từ khóa PHP

Sự khác biệt giữa bản thân PHP và cái này

selfthisthe từ khóa self sẽ không được đặt trước bất kỳ biểu tượng nào; . Nhưng PHP từ khóa này nên được bắt đầu bằng dấu $ trong khi giới thiệu các thành viên của lớp. Toán tử phân giải phạm vi PHP sẽ được sử dụng với từ khóa self. Ví dụ, bản thân. -> biểu tượng được sử dụng với biến $this như chúng ta đã sử dụng với một thể hiện đối tượng để truy cập thuộc tính của đối tượng đó. Ví dụ: $this->It sẽ được sử dụng để chỉ một thành viên tĩnh của một lớp. cái này được sử dụng để truy cập các thành viên không tĩnh với toán tử ->. Bản thân PHP đang đề cập đến các thành viên của lớp, không dành cho bất kỳ trường hợp cụ thể nào; . Tuy nhiên, $this sẽ giới thiệu các thành viên của lớp cho một thể hiện cụ thể của lớp

Thí dụ. PHP tự Vs cái này

Chúng ta hãy xem sự khác biệt trên với một chương trình PHP đơn giản làm ví dụ để biết, các thành viên của lớp được gọi như thế nào với hai từ khóa PHP này

toys_name = $name;
        $this->toys_category = $category;
    }

    public function getToyName[]
    {
        return $this->toys_name;
    }

    public function getToyCategory[]
    {
        return $this->toys_category;
    }

    public function getToyShop_nonStatic[]
    {
        return self::getToyShop[];
    }

    public static function getToyShop[]
    {
        return self::$shop_name;
    }

    public static function setToyShop[$shopname]
    {
        self::$shop_name = $shopname;
    }
}

$objToys = new Toys["Battery Car", "Battery Toys"];
$toys_name = $objToys->getToyName[];
$toys_category = $objToys->getToyCategory[];
echo "
Toy: " . $toys_name . ", Category: " . $toys_category; Toys::$shop_name = "Disney"; $shop_name = Toys::getToyShop[]; echo "
Shop Name: " . $shop_name; Toys::setToyShop["ToyShop"]; $shopname = Toys::getToyShop_nonStatic[]; echo "
Shop Name via non static function: " . $shopname; ?>

Trong chương trình trên, chúng ta có ba biến thành viên cho lớp Đồ chơi. Hai trong số đó là không tĩnh, dự kiến ​​​​sẽ được khởi tạo tự động trong khi tạo các thể hiện của lớp. Và, lớp chỉ chứa một biến tĩnh thường được gọi cho tất cả các phiên bản của lớp

Với các hàm tạo, các biến lớp được tham chiếu bằng cách sử dụng $this, để khởi tạo. Một lần nữa, bằng cách sử dụng biến $this, các biến thành viên khởi tạo được tham chiếu cho các getter của lớp được định nghĩa là một hàm thành viên không tĩnh, trả về các giá trị bắt buộc cho một thể hiện của lớp cụ thể

Mặt khác, các thành viên tĩnh được gọi là từ khóa self để trả về giá trị tĩnh của $shop_name bởi hàm thành viên tĩnh getToyShop[] của lớp Đồ chơi

Bên ngoài lớp, đầu tiên, chúng tôi đã tạo một thể hiện với hai đối số, để tự động gọi hàm tạo của lớp. Đối với đối tượng hoặc thể hiện này, các hàm thành viên không tĩnh được gọi để nhận giá trị của $toys_name và $toys_category. Bây giờ, các hàm thành viên sử dụng $this để chỉ các giá trị được khởi tạo khi khởi tạo

Và sau đó, các thành viên tĩnh được truy cập từ bên ngoài lớp bằng cách sử dụng chính tên lớp. Tuy nhiên, trong phạm vi lớp, chúng tôi đã sử dụng self để truy cập các thành viên đó. Trong chương trình này, chúng tôi đã truy xuất các giá trị biến tĩnh bằng cách sử dụng hàm thành viên không tĩnh getToyShop_nonStatic[], đồng thời

Sau khi thực hiện chương trình PHP trên, nó sẽ trả về đầu ra sau cho trình duyệt sẽ được hiển thị

Theo nhiều cách, PHP hỗ trợ Lập trình hướng đối tượng [đặc biệt là sử dụng self. , tĩnh. và cha mẹ. trong PHP]

Việc xem mã được viết theo thủ tục đang trở nên cổ xưa và giống như việc tìm thấy hóa thạch khủng long ở Nam Cực

Tất cả chúng ta đều có thể đồng ý rằng viết mã theo cách Hướng đối tượng tốt hơn viết theo thủ tục theo nhiều cách

Một trong những nguyên lý cơ bản của Ngôn ngữ hướng đối tượng là khái niệm kế thừa. Một ngôn ngữ lập trình phải hỗ trợ kế thừa để được coi là Hướng đối tượng hoặc có thể.  

Khi viết các lớp trong PHP, sẽ có lúc chúng ta cần truy cập các phương thức được định nghĩa trong một lớp hoặc một lớp cha bên trong chính lớp đó [chứ không phải là một thể hiện của lớp đó].  

Có ba bộ truy cập như vậy có thể dễ bị nhầm lẫn và chúng tự. , tĩnh. và cha mẹ. trong PHP. Bài viết này sẽ mô tả những điều này một cách chi tiết để loại bỏ bất kỳ sự mơ hồ nào có thể tồn tại với các bộ truy cập này

Trước khi bạn đi sâu vào, hãy xem hướng dẫn cơ bản về Laravel 2021 để được cập nhật với Laravel Development

Nếu bạn là nhà phát triển phụ trợ hoặc đang tìm hiểu sâu về con đường sự nghiệp này, hãy tham gia cùng các nhà phát triển khác để nhận các bài viết hàng ngày về phát triển phụ trợ giúp tăng năng suất của bạn

cái tôi. người truy cập

Để hình dung điều này, chúng ta hãy nhìn vào dòng mã này

Chủ Đề