$this trong PHP là gì

Chào các bạn, Mình download trên mạng một mô hình MVC về kham khảo thì có 1 file được 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 đó hàm __init() trong session là :

public static function __init(){ session_start(); }

và class View là

"; 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

$this trong PHP là gì
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 cần thiết phải khai báo thuộc tính mới có thể sử dụng được, dùng thoải mái 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 không nên dùng, nó là một bad practice. Tương lai PHP sẽ tìm cách bỏ chức năng này.

1 Like

Mình mới tìm lại được http://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 tế thì php có 1 cái gọi là dynamic properties, tức là bạn có thể tạo thêm properties cho 1 object của 1 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 khi $this->view = … thì biến view đã tự động add vào this, chính là chính object đó, nhưng bạn k nên làm thế nếu có thể, hãy dùng magic method __get __set

1 Like

Home Categories FAQ/Guidelines Terms of Service Privacy Policy

answer

$this trong PHP là gì

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

Một lớp có thể chứa các 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 chính 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 định (A)
  • $ cái này không được xác định.
  • $ cái này được xác định (B)
  • $ cái này không được xác định.

8 hữu ích 0 bình luận chia sẻ

answer

$this trong PHP là gì

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

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

class Horse { var $running = false; function run() { $this->running = true; } }

Như bạn có thể thấy, trong runhàm, chúng ta có thể sử dụng $thisbiến để tham chiếu đến cá thể của lớp Horse mà 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 cụ thể của lớp Horse, không phải cả hai.

3 hữu ích 0 bình luận chia sẻ

answer

$this trong PHP là gì

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 trong PHP. Có nghĩa là nếu bạn đang tạo các 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 bình luận chia sẻ

answer

$this trong PHP là gì

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. Vì vậy, bạ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 có thể chuỗi các 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 bình luận chia sẻ

answer

$this trong PHP là gì

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 (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. $ đây là một tham chiếu đến đối tượng đang gọi (thường là đối tượng mà phương thức thuộc về, nhưng có thể là một đối tượ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 phụ).

1 hữu ích 0 bình luận chia sẻ

answer

$this trong PHP là gì

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

Được sử dụng khi bạn muốn làm việc với các biến cục bộ.

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

function bark() { print "{$this->Name} says Woof!\n"; }

1 hữu ích 0 bình luận chia sẻ

answer

$this trong PHP là gì

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 đương trong các ngôn ngữ 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 đó sẽ trả về this, do đó, các lời gọi phương thức có thể dễ dàng đượ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 có thể được gọi như vậy:

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

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

1 hữu ích 3 bình luận chia sẻ

answer

$this trong PHP là gì

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.

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 cập 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 tế, $ này được sử dụng bên trong lớp, khi được cài đặt. Nó được coi là một phạm vi .

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

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

1 hữu ích 0 bình luận chia sẻ

answer

$this trong PHP là gì

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 của cùng một lớp .. như thế này

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

$ this-> var = 5;

0 hữu ích 0 bình luận chia sẻ

answer

$this trong PHP là gì

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 các phương thức hoặc biến cá thể thuộc đối tượ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 hiện tại được phân lớp hay không.

Nếu bạn muốn gọi cụ thể 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 bình luận chia sẻ

answer

$this trong PHP là gì

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

Bất cứ khi 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 đến lớp php hiện tại mà thuộc tính hoặc chức năng bạn sẽ truy cập nằm trong đó. Nó là một khái niệm php cốt lõi.

0 hữu ích 0 bình luận chia sẻ

answer

$this trong PHP là gì

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

name . 'is'. $this->age . 'years old'; } } ?>

-1 hữu ích 0 bình luận chia sẻ