Kinh Nghiệm Hướng dẫn $this trong PHP là gì Chi Tiết

Pro đang tìm kiếm từ khóa $this trong PHP là gì được Update vào lúc : 2022-03-29 16:04:22 . Với phương châm chia sẻ Thủ Thuật Hướng dẫn trong nội dung bài viết một cách Chi Tiết Mới Nhất. Nếu sau khi Read nội dung bài viết vẫn ko hiểu thì hoàn toàn có thể lại Comment ở cuối bài để Mình lý giải và hướng dẫn lại nha.

Chào những bạn,
Mình tải về trên mạng một quy mô MVC về kham khảo thì có một file được sử dụng như hình

Mình đã coi hết file trong thư mục nhưng tác giả không khai báo biến view hay js css gì hết nhưng sao lại sử dụng được,

Trong số đó hàm __init() trong session là :

public static function __init()
session_start();

và class View là

<?php
class View
public function __construct()

public function render($link,$Noinclude="")
if($Noinclude=="")
require_once __TEMPLATES_PATH."header.php";
echo "

“;
require(__VIEW_PATH.$link.”.php”);
echo”

“;
require_once __TEMPLATES_PATH.”footer.php”;
else
require(__VIEW_PATH.$link.”.php”);

public function redirect($link=”)
ob_start();
if($link!=”)
$link=__SITE_PATH.$link;
else
$link=__SITE_PATH;

header(“Location:$link”);

?>

Cảm ơn,

1 Like

không khai báo view nhưng chắc có dùng magic method __get __set, và hơn hết code MVC bạn lấy từ đâu, nên dẫn nguồn và full code của class Controller

1 Like

sufuijk:

Mình đã coi hết file trong thư mục nhưng tác giả không khai báo biến view hay js css gì hết nhưng sao lại sử dụng được,

PHP cơ bản nhé. Trong PHP, không thiết yếu phải khai báo thuộc tính mới hoàn toàn có thể sử dụng được, dùng tự do vô tư.

class AnyClass
public function random()
$this->value = 100;

public function getValue()
return $this->value;

$wow = new AnyClass;
$wow->random();
echo $wow->getValue(); // 100

Mặc dù làm được thế này nhưng tránh việc dùng, nó là một bad practice. Tương lai PHP sẽ tìm cách bỏ hiệu suất cao này.

1 Like

Mình mới tìm lại được ://hocphp.info/mo-hinh-mvc/
full code Controller

view=new View; $this->view->js=array(“default”,”jquery”); $this->view->css=array(“default”); public function LoadModel($name) $path=__MODEL_PATH.$name.”_Model.php”; if(file_exists($path)) require_once($path); $name=$name.”_Model”; $this->model=new $name; ?>

ok, thực tiễn thì php có một chiếc gọi là dynamic properties, tức là bạn hoàn toàn có thể tạo thêm properties cho một object của một class mà k cần khai báo biến trước. Do đó bạn k thấy chỗ khai báo biến $view là phải, ngay lúc $this->view = … thì biến view đã tự động hóa add vào this, đó đó là chính object đó, nhưng bạn k nên làm thế nếu hoàn toàn có thể, hãy dùng magic method __get __set

1 Like

trang chủ Categories FAQ/Guidelines Terms of Service Privacy Policy

answer

Hồ Hoàng Bảo · Hồ Hoàng Bảo 16:37 21/12/2010

Một lớp hoàn toàn có thể chứa những hằng số, biến (được gọi là “thuộc tính”) và hàm (được gọi là “phương thức”) của nó.

var;

?>

Một số ví dụ về $ this-biến giả:

foo();

// Note: the next line will issue a warning if E_STRICT is enabled.
A::foo();
$b = new B();
$b->bar();

// Note: the next line will issue a warning if E_STRICT is enabled.
B::bar();
?>

Ví dụ trên sẽ xuất ra:

    $ cái này được xác lập (A)$ cái này sẽ không còn được xác lập.$ cái này được xác lập (B)$ cái này sẽ không còn được xác lập.

8 hữu ích 0 phản hồi chia sẻ

answer

Dương Thanh Hào · Dương Thanh Hào 16:38 21/12/2010

Trường hợp sử dụng phổ cập nhất là trong Lập trình hướng đối tượng người dùng, trong lúc định nghĩa hoặc thao tác trong một lớp. Ví dụ:

class Horse
var $running = false;

function run()
$this->running = true;

Như bạn hoàn toàn có thể thấy, trong runhàm, toàn bộ chúng ta hoàn toàn có thể sử dụng $thisbiến để tham chiếu đến thành viên của lớp Horse mà toàn bộ chúng ta đang ở “trong”. Vì vậy, điều khác cần lưu ý là nếu bạn tạo 2 lớp Horse, $thisbiến bên trong của mỗi lớp sẽ tham chiếu đến phiên bản rõ ràng của lớp Horse, không phải cả hai.

3 hữu ích 0 phản hồi chia sẻ

answer

Võ Ðại Ngọc · Võ Ðại Ngọc 16:37 21/12/2010

Bạn sẽ chỉ sử dụng $ này nếu bạn đang lập trình hướng đối tượng người dùng trong PHP. Có nghĩa là nếu bạn đang tạo những lớp học. Đây là một ví dụ:

class Item
protected $name, $price, $qty, $total;

public function __construct($iName, $iPrice, $iQty)
$this->name = $iName;
$this->price = $iPrice;
$this->qty = $iQty;
$this->calculate();

2 hữu ích 2 phản hồi chia sẻ

answer

Dương Hồng Việt · Dương Hồng Việt 16:50 21/12/2010

$ cái này được sử dụng để tạo tham chiếu đến phiên bản hiện tại của một đối tượng người dùng. Vì vậy, bạn hoàn toàn có thể làm những việc như:

class MyClass
private $name;

public function setName($name)
$this->name = $name;

//vs
public function setName($pName)
$name = $pName;

Ngoài ra một cách sử dụng thú vị khác là bạn hoàn toàn có thể chuỗi những phương pháp:

class MyClass2
private $firstName;
private $lastName;

public function setFirstName($name)
$this->firstName = $name;
return $this;

public function setLastName($name)
$this->lastName = $name;
return $this;

public function sayHello()
print “Hello $this->firstName $this->lastName”;

//And now you can do:
$newInstance = new MyClass2;
$newInstance->setFirstName(“John”)->setLastName(“Doe”)->sayHello();

2 hữu ích 0 phản hồi chia sẻ

answer

Dương Hữu Phước · Dương Hữu Phước 16:37 21/12/2010

Nó được sử dụng trong Lập trình hướng đối tượng người dùng (OOP):

foo();

Biến giả $ này khả dụng khi một phương thức được gọi từ bên trong ngữ cảnh đối tượng người dùng. $ đấy là một tham chiếu đến đối tượng người dùng đang gọi (thường là đối tượng người dùng mà phương thức thuộc về, nhưng hoàn toàn có thể là một đối tượng người dùng khác, nếu phương thức được gọi tĩnh từ ngữ cảnh của một đối tượng người dùng phụ).

1 hữu ích 0 phản hồi chia sẻ

answer

Trịnh Nhật Vinh · Trịnh Nhật Vinh 16:40 21/12/2010

Được sử dụng khi bạn muốn thao tác với những biến cục bộ.

Bạn cũng hoàn toàn có thể đọc thêm về nó từ đây .

function bark()
print “$this->Name says Woof!n”;

1 hữu ích 0 phản hồi chia sẻ

answer

Phan Trọng Kiên · Phan Trọng Kiên 16:38 21/12/2010

Một lần tôi biết rằng tôi kết thúc việc sử dụng thisngôn ngữ tương tự trong những ngôn từ khác là triển khai giao diện ‘Thông thạo’; mỗi phương thức lớp sẽ trả về voidthay vào này sẽ trả về this, do đó, những lời gọi phương thức hoàn toàn có thể thuận tiện và đơn thuần và giản dị được xâu chuỗi lại với nhau.

public function DoThis()
//Do stuff here…
return $this;

public function DoThat()
//do other stuff here…
return $this;

Ở trên hoàn toàn có thể được gọi như vậy:

myObject->DoThis()->DoThat();

Điều này hoàn toàn có thể hữu ích cho một số trong những thứ.

1 hữu ích 3 phản hồi chia sẻ

answer

Trịnh Nghi Dung · Trịnh Nghi Dung 16:51 21/12/2010

$ này được sử dụng khi bạn đã tạo một phiên bản mới của một đối tượng người dùng.

Ví dụ, hãy tưởng tượng điều này:

class Test
private $_hello = “hello”;

public function getHello ()
echo $this->_hello; // note that I removed the $ from _hello !

public function setHello ($hello)
$this->_hello = $hello;

Để truy vấn vào phương thức getHello, tôi phải tạo một phiên bản mới của Class Test, như sau:

$obj = new Test ();
// Then, I can access to the getHello method :
echo $obj->getHello ();
// will output “hello”

$obj->setHello(“lala”);
echo $obj->getHello ();
// will output “lala”

Trên thực tiễn, $ này được sử dụng bên trong lớp, khi được setup. Nó sẽ là một phạm vi .

Bên trong lớp của bạn, bạn sử dụng $ this (để truy vấn * $ _ hello * ví dụ điển hình) nhưng bên phía ngoài lớp, $ this KHÔNG tham chiếu đến những thành phần bên trong lớp của bạn (như * $ _ hello *), nó là $ obj có.

Bây giờ, sự khác lạ ở chính giữa $ obj và $ đấy là vì $ obj truy vấn vào lớp của bạn từ bên phía ngoài , một số trong những hạn chế sẽ xẩy ra: nếu bạn xác lập điều gì đó riêng tư hoặc được bảo vệ trong lớp của tớ, ví như biến của tôi * $ _ xin chào *, $ obj KHÔNG ĐƯỢC truy vấn nó (nó là riêng tư!) nhưng $ cái này hoàn toàn có thể , hãy đặt $ cái nó lại bên trong lớp.

1 hữu ích 0 phản hồi chia sẻ

answer

Hoàng Ðức Quang · Hoàng Ðức Quang 16:38 21/12/2010

không, tôi nghĩ ý tưởng của bạn là sai .. $thisđược sử dụng khi đề cập đến một đối tượng người dùng của cùng một lớp .. như vậy này

nghĩ rằng toàn bộ chúng ta có một giá trị biến $ var và trong trường hợp ĐÓ của đối tượng người dùng đó nên được đặt thành 5

$ this-> var = 5;

0 hữu ích 0 phản hồi chia sẻ

answer

Bùi Phước Nhân · Bùi Phước Nhân 16:43 21/12/2010

Việc sử dụng $ this là để tham chiếu những phương thức hoặc biến thành viên thuộc đối tượng người dùng hiện tại

$ this-> name = $ name hoặc $ this-> callSomeMethod ()

sẽ sử dụng biến hoặc phương thức được triển khai trong đối tượng người dùng hiện tại được phân lớp hay là không.

Nếu bạn muốn gọi rõ ràng một triển khai của lớp cha, bạn sẽ làm điều gì đó như

cha mẹ :: callSomeMethod ()

0 hữu ích 0 phản hồi chia sẻ

answer

Huỳnh Thục Tâm · Huỳnh Thục Tâm 00:10 07/08/2022

Bất cứ lúc nào bạn muốn sử dụng một biến nằm ngoài hàm nhưng bên trong cùng một lớp, bạn sử dụng $ this. $ này đề cập đi học php hiện tại mà thuộc tính hoặc hiệu suất cao bạn sẽ truy vấn nằm trong số đó. Nó là một khái niệm php cốt lõi.

0 hữu ích 0 phản hồi chia sẻ

answer

Trịnh Linh Giang · Trịnh Linh Giang 07:09 11/01/2022

name . ‘is’. $this->age . ‘years old’;

?>

-1 hữu ích 0 phản hồi chia sẻ

4073

Review $this trong PHP là gì ?

Bạn vừa Read nội dung bài viết Với Một số hướng dẫn một cách rõ ràng hơn về Review $this trong PHP là gì tiên tiến và phát triển nhất

Share Link Download $this trong PHP là gì miễn phí

Bạn đang tìm một số trong những ShareLink Download $this trong PHP là gì miễn phí.

Hỏi đáp vướng mắc về $this trong PHP là gì

Nếu sau khi đọc nội dung bài viết $this trong PHP là gì vẫn chưa hiểu thì hoàn toàn có thể lại phản hồi ở cuối bài để Mình lý giải và hướng dẫn lại nha
#trong #PHP #là #gì