Hướng dẫn call by value and call by reference difference in php - gọi theo giá trị và gọi theo chênh lệch tham chiếu trong php

Sự khác biệt chính giữa cuộc gọi theo giá trị và cuộc gọi theo tham chiếu

  • Trong cuộc gọi theo phương thức giá trị Giá trị ban đầu không được sửa đổi, trong khi trong phương thức gọi theo phương thức tham chiếu, giá trị ban đầu được sửa đổi.
  • Trong cuộc gọi theo giá trị, một bản sao của biến được truyền, trong khi trong cuộc gọi theo tham chiếu, một biến được truyền.
  • Trong cuộc gọi theo giá trị, các đối số thực tế và chính thức sẽ được tạo ở các vị trí bộ nhớ khác nhau, trong khi trong cuộc gọi bằng tham chiếu, các đối số thực tế và chính thức sẽ được tạo ở cùng một vị trí bộ nhớ.
  • Gọi theo giá trị là phương thức mặc định trong các ngôn ngữ lập trình như C ++, PHP, Visual Basic Net và C#, trong khi cuộc gọi bằng tham chiếu chỉ được hỗ trợ trong ngôn ngữ Java.
  • Cuộc gọi theo các biến giá trị được truyền bằng phương thức đơn giản, trong khi cuộc gọi bằng các con trỏ tham chiếu được yêu cầu để lưu trữ địa chỉ của các biến.

Hướng dẫn call by value and call by reference difference in php - gọi theo giá trị và gọi theo chênh lệch tham chiếu trong php

Trong các ngôn ngữ lập trình, các chức năng có thể được gọi theo hai cách: được gọi là cuộc gọi theo giá trị và cuộc gọi theo tham chiếu.

Phương thức gọi theo giá trị là gì?

Gọi theo phương thức giá trị sao chép giá trị của một đối số vào tham số chính thức của hàm đó. Do đó, các thay đổi được thực hiện đối với tham số của hàm chính không ảnh hưởng đến đối số.

Trong phương thức chuyển tham số này, các giá trị của các tham số thực tế được sao chép vào các tham số chính thức của hàm và các tham số được lưu trữ ở các vị trí bộ nhớ khác nhau. Vì vậy, bất kỳ thay đổi nào được thực hiện trong các chức năng bên trong không được phản ánh trong các tham số thực tế của người gọi.

Phương thức gọi bằng phương pháp tham chiếu là gì?

Gọi theo phương thức tham chiếu sao chép địa chỉ của một đối số vào tham số chính thức. Trong phương thức này, địa chỉ được sử dụng để truy cập đối số thực tế được sử dụng trong lệnh gọi hàm. Nó có nghĩa là những thay đổi được thực hiện trong tham số thay đổi đối số vượt qua.

Trong phương pháp này, phân bổ bộ nhớ giống như các tham số thực tế. Tất cả các hoạt động trong hàm được thực hiện trên giá trị được lưu trữ tại địa chỉ của tham số thực tế và giá trị sửa đổi sẽ được lưu trữ tại cùng một địa chỉ.

C ví dụ mã của một cuộc gọi theo phương thức giá trị

void main() {
        int a = 10,
        void increment(int);
        Cout << "before function calling" << a;
        increment(a);
        Cout << "after function calling" << a;
        getch();

        void increment(int x) {
            int x = x + 1;
            Cout << "value is" << x;
        }

Output:

before function calling 10
value is 11
after function calling 1-0

Bởi vì biến được khai báo ‘a Khănin Main () khác với biến‘ X, trong tăng (). Trong chương trình này, chỉ có tên biến tương tự nhau, nhưng địa chỉ bộ nhớ của chúng là khác nhau và được lưu trữ ở các vị trí bộ nhớ khác nhau.

Ví dụ về mã Java của một cuộc gọi theo phương thức tham chiếu

Public static void main(string args[]) {
    int a = 10;
    System.out.println("Before call Value of a = ", a);
    Void increment();
    System.out.println("After call Value of a = ", a);
}

Void increment(int x) {
    int x = x + 1;
}

Output:

Before call Value of a =10
After call Value of a =11

Bởi vì biến được khai báo ’một trong đó đang tham khảo/ trỏ đến biến’ a, trong main (). Ở đây tên biến là khác nhau, nhưng cả hai đều chỉ/tham chiếu đến cùng các vị trí địa chỉ bộ nhớ.

Thông sốGọi theo giá trịGọi bằng cách tham khảo
Sự định nghĩaTrong khi gọi một hàm, khi bạn truyền các giá trị bằng cách sao chép các biến, nó được gọi là cuộc gọi của các giá trị.Trong khi gọi một hàm, trong ngôn ngữ lập trình thay vì sao chép các giá trị của các biến, địa chỉ của các biến được sử dụng, nó được gọi là cuộc gọi của các tài liệu tham khảo.
Tranh luậnTrong phương pháp này, một bản sao của biến được truyền.Trong phương pháp này, một biến chính được thông qua.
Hiệu ứngCác thay đổi được thực hiện trong một bản sao của biến không bao giờ sửa đổi giá trị của biến bên ngoài hàm.Thay đổi trong biến cũng ảnh hưởng đến giá trị của biến bên ngoài hàm.
Thay đổi giá trịKhông cho phép bạn thực hiện bất kỳ thay đổi nào trong các biến thực tế.Cho phép bạn thực hiện các thay đổi trong các giá trị của các biến bằng cách sử dụng các cuộc gọi chức năng.
Đi qua của biếnCác giá trị của các biến được truyền bằng phương pháp đơn giản.Các biến con trỏ được yêu cầu để lưu trữ địa chỉ của các biến.
Sửa đổi giá trịGiá trị ban đầu không được sửa đổi.Giá trị ban đầu được sửa đổi.
Vị trí bộ nhớĐối số thực tế và chính thức sẽ được tạo ở vị trí bộ nhớ khác nhau
will be created in different
memory location
Đối số thực tế và chính thức sẽ được tạo ở cùng một vị trí bộ nhớ
will be created in the same
memory location
Sự an toànĐối số thực tế vẫn an toàn vì chúng không thể được sửa đổi một cách tình cờ.
safe as they cannot be modified
accidentally.
Đối số thực tế không an toàn. Chúng có thể vô tình sửa đổi, vì vậy bạn cần xử lý các hoạt động đối số một cách cẩn thận.
Safe. They can be
accidentally modified, so you need to handle arguments operations carefully.
Mặc địnhMặc định trong nhiều ngôn ngữ lập trình như C ++. PHP. Visual Basic Net và C#.
languages like C++.PHP. Visual Basic NET, and C#.
Nó được hỗ trợ bởi hầu hết các ngôn ngữ lập trình như Java, nhưng không phải là mặc định.
programming languages like JAVA, but
not as default.

Ưu điểm của việc sử dụng phương thức gọi bằng giá trị trong c

Ưu điểm/lợi ích của cuộc gọi theo giá trị trong c:

  • Phương pháp này không thay đổi biến ban đầu, vì vậy nó đang bảo tồn dữ liệu.
  • Bất cứ khi nào một hàm được gọi là nó, không bao giờ ảnh hưởng đến nội dung thực tế của các đối số thực tế.
  • Giá trị của các đối số thực tế được truyền cho các đối số chính thức, vì vậy bất kỳ thay đổi nào được thực hiện trong đối số chính thức không ảnh hưởng đến các trường hợp thực tế.

Ưu điểm của việc sử dụng phương thức gọi bằng phương pháp tham chiếu

Ưu điểm của việc sử dụng phương pháp gọi bằng phương pháp tham chiếu:

  • Hàm có thể thay đổi giá trị của đối số, khá hữu ích.
  • Nó không tạo dữ liệu trùng lặp để chỉ giữ một giá trị giúp bạn lưu không gian bộ nhớ.
  • Trong phương pháp này, không có bản sao của đối số được thực hiện. Do đó nó được xử lý rất nhanh.
  • Giúp bạn tránh những thay đổi được thực hiện do nhầm lẫn
  • Một người đọc mã không bao giờ biết rằng giá trị có thể được sửa đổi trong hàm.

Nhược điểm của việc sử dụng phương thức CALL theo giá trị

Ở đây, là những nhược điểm chính/nhược điểm của một cuộc gọi theo phương thức giá trị:

  • Các thay đổi đối với các tham số thực tế cũng có thể sửa đổi các biến đối số tương ứng
  • Trong phương pháp này, các đối số phải là biến.
  • Bạn có thể trực tiếp thay đổi một biến trong một cơ thể chức năng.
  • Đôi khi đối số có thể là các biểu thức phức tạp
  • Có hai bản sao được tạo cho cùng một biến không hiệu quả bộ nhớ.

Nhược điểm của việc sử dụng phương thức cuộc gọi bằng phương thức tham chiếu

Ở đây, là những nhược điểm chính của việc sử dụng phương thức gọi theo phương pháp tham chiếu:

  • Đảm bảo không null mạnh. Một chức năng lấy một tham chiếu cần phải đảm bảo rằng đầu vào không phải là null. Do đó, kiểm tra null không cần phải được thực hiện.
  • Chuyển bằng tham chiếu làm cho chức năng không thuần túy về mặt lý thuyết.
  • Đảm bảo trọn đời là một vấn đề lớn với các tài liệu tham khảo. Điều này đặc biệt nguy hiểm khi làm việc với Lambdas và các chương trình đa luồng.

Sự khác biệt giữa cuộc gọi theo giá trị và cuộc gọi theo tham chiếu là gì?

Trong trường hợp gọi theo giá trị, khi chúng ta chuyển giá trị của tham số trong quá trình gọi hàm, nó sao chép chúng vào đối số cục bộ thực tế của hàm. Trong trường hợp gọi bằng tham chiếu, khi chúng tôi chuyển tham chiếu/địa chỉ vị trí của tham số, nó sao chép và gán chúng cho đối số cục bộ của hàm.

Cuộc gọi theo giá trị và gọi bằng cách tham khảo với ví dụ là gì?

Gọi theo giá trị có nghĩa là gọi một phương thức có tham số là giá trị.Thông qua đó, giá trị đối số được chuyển đến tham số.Trong khi cuộc gọi bằng tham chiếu có nghĩa là gọi một phương thức có tham số làm tham chiếu.Thông qua đó, tham chiếu đối số được chuyển đến tham số.

Hàm trong PHP giải thích cuộc gọi theo giá trị và cuộc gọi bằng cách tham khảo với ví dụ là gì?

PHP cho phép bạn gọi chức năng theo giá trị và tham chiếu cả hai.Trong trường hợp gọi PHP theo giá trị, giá trị thực tế không được sửa đổi nếu nó được sửa đổi bên trong hàm.Hãy hiểu khái niệm về cuộc gọi theo giá trị bằng sự trợ giúp của các ví dụ.. In case of PHP call by value, actual value is not modified if it is modified inside the function. Let's understand the concept of call by value by the help of examples.

Sự khác biệt giữa cuộc gọi theo tham chiếu và cuộc gọi theo địa chỉ là gì?

Gọi theo địa chỉ là một cách gọi một hàm trong đó địa chỉ của các đối số thực tế được sao chép vào các tham số chính thức.Nhưng, hãy gọi bằng tham chiếu là một phương thức chuyển các đối số cho một hàm bằng cách sao chép tham chiếu của một đối số vào tham số chính thức.