Hướng dẫn what is new keyword in php? - từ khóa mới trong php là gì?

Từ khóa mới của PHP được sử dụng khi chúng ta cần tạo một đối tượng mới từ một lớp. Ví dụ:new keyword is used when we need to create a new object from a class. For example:

<?php
   class Student
   {
      public $name = "Lucas";
      public $city = "Amsterdam";
   }
   
   $obj = new Student();
   
   echo "Name: $obj->name";
   echo "<BR>";
   echo "City: $obj->city";
?>

Đầu ra của ví dụ PHP trên trên từ khóa mới được hiển thị trong ảnh chụp nhanh được đưa ra dưới đây:new keyword is shown in the snapshot given below:

Hướng dẫn what is new keyword in php? - từ khóa mới trong php là gì?

Ví dụ trên cũng có thể được viết theo cách này:

<?php
   class Student {
      public $name = "Lucas";
      public $city = "Amsterdam"; }
   
   $obj = new Student();
   
   echo "Name: ", $obj->name, "<BR>City: ", $obj->city;
?>

Hoặc

<?php
   class Student {
      public $name = "Lucas";
      public $city = "Amsterdam";
   }
   
   $obj = new Student();
   
   $x = $obj->name;
   $y = $obj->city;
   
   echo "Name: ", $x, "<BR>City: ", $y;
?>

Trong các ví dụ trên, sử dụng câu lệnh:

Một đối tượng có tên $ OBJ được tạo ra từ lớp học sinh. Để tìm hiểu về các lớp và đối tượng chi tiết, hãy tham khảo hướng dẫn riêng biệt của nó.$obj is created of type Student class. To learn about classes and objects in detail, refer to its separate tutorial.

Php trực tuyến kiểm tra


«Php TutorialCodesCracker» CodesCracker »


$obj2 = new $obj1; (tạo một thể hiện mới của một đối tượng có cùng lớp với $ obj1)! == $obj2 = $obj1; (tạo ra $obj2 tham chiếu đến $ obj1)! == nguyên bản nhưng là một thể hiện đối tượng mới)

Đối với 3 trường hợp khác nhau mà tôi đã trích dẫn trong các bình luận của mình ở trên, hãy tạo một lớp đơn giản và khởi tạo nó:

class User {
    public $firstname;
    public $lastname;

    public function __construct($firstname = 'TEST', $lastname = 'USER') {
        $this->firstname = $firstname;
        $this->lastname = $lastname;
    }

    public function getName() {
        return implode(' ', [$this->firstname, $this->lastname]);
    }
}

// original instance of a User
$obj1 = new User('Mark', 'Baker');
var_dump($obj1->getName());    // Mark Baker

Bây giờ nếu chúng ta chỉ cần gán một biến mới cho bản gốc, chúng ta sẽ đặt một con trỏ cho bản gốc (vì đó là một đối tượng), tương tự như tham chiếu

// Simply set reference to our original User
$obj2 = $obj1;
var_dump($obj2->getName());    // Mark Baker

// And if we change properties of the instance, it changes for both because it's a reference
$obj2->firstname = 'David Mark';
var_dump($obj2->getName());    // David Mark Baker
var_dump($obj1->getName());    // David Mark Baker

Bất kỳ thay đổi nào đối với một trong hai sẽ được phản ánh trong yếu tố khác, bởi vì chúng đang chỉ vào cùng một trường hợp đối tượng


Nếu chúng ta sử dụng

<?php
   class Student {
      public $name = "Lucas";
      public $city = "Amsterdam"; }
   
   $obj = new Student();
   
   echo "Name: ", $obj->name, "<BR>City: ", $obj->city;
?>
1, thì chúng ta sẽ tạo một thể hiện đối tượng hoàn toàn mới, nhưng đã có các giá trị thuộc tính từ bản gốc

// Clone the original object, this will create a new instance but will inherit property values of the original
$obj3 = clone $obj1;
var_dump($obj3->getName());    // David Mark Baker

// But changing properties of the clone won't affect the original in any way
$obj3->firstname = 'Mark';
var_dump($obj3->getName());    // Mark Baker
var_dump($obj1->getName());    // David Mark Baker

Bây giờ nếu chúng ta thay đổi thuộc tính của bản gốc, nó sẽ không ảnh hưởng đến bản sao (hoặc ngược lại) vì chúng là những trường hợp duy nhất.


Chúng tôi có trường hợp thứ ba, trong đó chúng tôi đang sử dụng

<?php
   class Student {
      public $name = "Lucas";
      public $city = "Amsterdam"; }
   
   $obj = new Student();
   
   echo "Name: ", $obj->name, "<BR>City: ", $obj->city;
?>
2 với một thể hiện chứ không phải tên lớp.

// Now create a new instance of the same type of object as your original User
// If we had mandatory constructor arguments, then we'd have to provide them $obj4 = new $obj1('a', 'b');
// But because they're optional, we  can get away with allowing the defaults

$obj4 = new $obj1;
var_dump($obj4->getName());    // TEST USER

Nếu chúng ta không biết loại loại

<?php
   class Student {
      public $name = "Lucas";
      public $city = "Amsterdam"; }
   
   $obj = new Student();
   
   echo "Name: ", $obj->name, "<BR>City: ", $obj->city;
?>
3 là gì, thì điều đó không thành vấn đề (mặc dù nó sẽ đủ dễ dàng để tìm hiểu). Điều này tạo ra một ví dụ hoàn toàn mới của bất kỳ lớp
<?php
   class Student {
      public $name = "Lucas";
      public $city = "Amsterdam"; }
   
   $obj = new Student();
   
   echo "Name: ", $obj->name, "<BR>City: ", $obj->city;
?>
3 nào, mà không có sự kế thừa tài sản mà
<?php
   class Student {
      public $name = "Lucas";
      public $city = "Amsterdam"; }
   
   $obj = new Student();
   
   echo "Name: ", $obj->name, "<BR>City: ", $obj->city;
?>
1 đưa ra, cũng không phải là tài liệu tham khảo như
<?php
   class Student {
      public $name = "Lucas";
      public $city = "Amsterdam"; }
   
   $obj = new Student();
   
   echo "Name: ", $obj->name, "<BR>City: ", $obj->city;
?>
6 đã đưa ra ..... một lỗi).

3.4. Từ khóa và trình xây dựng mới

Các phiên bản của các lớp được tạo bằng cách sử dụng từ khóa mới. Trong ví dụ trước, chúng tôi đã tạo một thể hiện mới của lớp người sử dụng $ judy = new person () ;. Điều xảy ra trong cuộc gọi mới là một đối tượng mới được phân bổ với các bản sao của các thuộc tính được xác định trong lớp bạn yêu cầu, và sau đó hàm tạo của đối tượng được gọi trong trường hợp một được xác định. Trình xây dựng là một phương thức có tên __construct (), được tự động gọi bởi từ khóa mới sau khi tạo đối tượng. Nó thường được sử dụng để tự động thực hiện các khởi tạo khác nhau như khởi tạo thuộc tính. Các hàm tạo cũng có thể chấp nhận các đối số, trong trường hợp đó, khi câu lệnh mới được viết, bạn cũng cần gửi ...

Từ khóa mới là gì?

Từ khóa mới trong JavaScript được sử dụng để tạo một thể hiện của một đối tượng có hàm tạo hàm.Khi gọi chức năng Constructor với toán tử 'mới', các hành động sau được thực hiện: một đối tượng trống mới được tạo.used to create an instance of an object that has a constructor function. On calling the constructor function with 'new' operator, the following actions are taken: A new empty object is created.

Từ khóa PHP là gì?

PHP có một tập hợp các từ khóa là các từ dành riêng không thể được sử dụng làm tên hàm, tên lớp hoặc tên phương thức.Trước PHP 7, các từ khóa này không thể được sử dụng làm tên thuộc tính lớp: từ khóa.Sự mô tả.reserved words which cannot be used as function names, class names or method names. Prior to PHP 7, these keywords could not be used as class property names either: Keyword. Description.

Việc sử dụng từ khóa mới cho thấy việc sử dụng từ khóa mới là gì?

Từ khóa mới được sử dụng trong JavaScript để tạo một đối tượng từ hàm tạo hàm.Từ khóa mới phải được đặt trước cuộc gọi hàm của hàm tạo và sẽ thực hiện những việc sau: Tạo một đối tượng mới.Đặt nguyên mẫu của đối tượng này thành thuộc tính nguyên mẫu của hàm của hàm tạo.

Làm thế nào để bạn tạo một đối tượng mới trong PHP?

Để tạo một đối tượng mới trong PHP, bạn phải sử dụng từ khóa mới.use the new keyword.