Gọi theo giá trị và gọi theo tham chiếu trong PHP với ví dụ

Gọi theo tham chiếu là tất cả về việc chuyển tham chiếu của biến dưới dạng tham số hàm. Vì PHP không hỗ trợ trực tiếp loại cơ chế con trỏ nên nó hỗ trợ một tham chiếu để xử lý các hoạt động khác nhau. Trong ngôn ngữ PHP, giá trị thực của biến đang nắm giữ đó sẽ bị sửa đổi nếu giá trị bên trong bất kỳ hàm nào bị sửa đổi; . Ký hiệu dấu và [&] có thể được sử dụng làm tiền tố trong khi chuyển một biến làm tham chiếu trong lệnh gọi là tham chiếu. Bản thân biểu tượng & thể hiện rằng một biến đang được sử dụng làm tham chiếu. Hàm tham chiếu cũng có thể được truyền dưới dạng tham số cho hàm khác. Trong chủ đề này, chúng ta sẽ tìm hiểu về PHP Call by Reference

Gói phát triển phần mềm tất cả trong một[hơn 600 khóa học, hơn 50 dự án]

Giá
Xem khóa học

600+ Khóa học trực tuyến. hơn 50 dự án. Hơn 3000 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập Trọn đời
4. 6 [85.014 xếp hạng]

cú pháp

Không có cú pháp đặc biệt nào để sử dụng cái này, nhưng có, dấu & cần được sử dụng khi truyền tham số cho hàm

Bắt đầu khóa học phát triển phần mềm miễn phí của bạn

Phát triển web, ngôn ngữ lập trình, kiểm thử phần mềm và những thứ khác

Khai báo chức năng có thể như dưới đây

function callByref[&$var]
{
$var.= 'inside the Call By Reference function.';
}

Không cần bất kỳ điều đặc biệt nào trong khi gọi chức năng này;

$var = 'Yes, I am';
callByref [$var];

Gọi theo tham chiếu hoạt động như thế nào trong PHP?

Trước khi tiếp tục với hoạt động của cuộc gọi theo tham chiếu, cần phải có các yêu cầu để có thể được trang bị cho một chức năng. Khi đó, trong phần khai báo của hàm xác định đó, chúng ta có thể sử dụng dấu tham chiếu đến một biến tham số. Hãy hiểu điều tương tự với một ví dụ nhanh

function callByref[&$var]
{
$var.= 'Call By Reference function.';
}
$var = 'Try to check the reference, I am inside the ';

Khi chúng tôi cố gắng in $var ở đây, điều này sẽ hiển thị thông báo trên

echo $var;
// printing variable before calling function

Gọi hàm bây giờ, gọi hàm này sẽ sửa đổi giá trị thực của biến

$var theo văn bản bên trong hàm

callByref [$var];
echo $var;
// this will be print the combined value of the string.

Trong ngôn ngữ PHP được đề cập dưới đây có thể được sử dụng như một cuộc gọi theo tham chiếu

  • Biến - một biến bình thường
  • Hàm trả về tham chiếu – một hàm được xác định rõ trả về tham chiếu cũng có thể được truyền dưới dạng tham số hàm trong lệnh gọi theo tham chiếu [xem ví dụ E3]

Ví dụ về cuộc gọi theo tham chiếu

Các ví dụ khác nhau được đề cập dưới đây

Ví dụ 1

Một chương trình đơn giản sử dụng lệnh gọi tham chiếu để kiểm tra bản chất của hàm này. Trong đó, chúng ta có thể kiểm tra giá trị thực đang được sửa đổi sau khi sử dụng lệnh gọi theo tham chiếu và sửa đổi biến từ bên trong hàm

Mã số

đầu ra

Ví dụ #2

Một mã ví dụ đang phân biệt cuộc gọi theo giá trị và cuộc gọi theo tham chiếu trong PHP

Mã số

đầu ra

Như chúng ta có thể thấy trong ví dụ trên, call-by-swap sẽ không hoạt động nếu chúng ta in giá trị của a và b bên ngoài hàm đó. Điều này là do cuộc gọi theo giá trị không thay đổi bản sao thực tế của biến. Nhưng trong cuộc gọi theo tham chiếu, chúng ta có thể thấy rằng chúng ta đang in giá trị của a và b ngay sau khi gọi hàm đó và hoán đổi hoạt động tốt. Đây là tất cả trong khi chúng ta sẽ xử lý các chức năng hoán đổi với cuộc gọi theo giá trị và cuộc gọi theo tham chiếu

Ví dụ #3

Mã số

đầu ra

Trong ví dụ trên, chúng ta có thể thấy rằng một hàm tham chiếu FunctionAsAParam[] được sử dụng như một tham số hàm khác. Theo mã được viết bên trong này, nó gán giá trị của biến chính. Hàm mainFunction[] là hàm chính của đoạn mã trên, đang tăng giá trị của giá trị sau khi sử dụng FunctionAsAParam[] làm tham số hàm tham chiếu. Có nhiều cách khác nhau để chúng ta có thể sử dụng hàm làm tham số tham chiếu

Phần kết luận

Gọi theo tham chiếu sử dụng ký hiệu & trong tham số tại thời điểm tạo, không phải lúc gọi hàm này. Trong ngôn ngữ C hoặc C++, nó thường được sử dụng tại thời điểm gọi hàm này, không giống như PHP. Cuộc gọi PHP theo tham chiếu là tất cả về việc tạo hoặc gọi một hàm sửa đổi bản sao thực của biến. Do đó, không có dấu hiệu tham chiếu nào được yêu cầu tại thời điểm gọi theo ý muốn đưa ra lỗi trong PHP

Bài viết được đề xuất

Đây là hướng dẫn về PHP Call by Reference. Ở đây chúng ta thảo luận về giới thiệu, cú pháp và hoạt động của lệnh gọi theo tham chiếu trong PHP cùng với các ví dụ khác nhau và triển khai mã. Bạn cũng có thể xem các bài viết sau để tìm hiểu thêm –

Sự khác biệt giữa cuộc gọi theo giá trị và cuộc gọi theo tham chiếu trong PHP 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 khi gọi hàm, nó sẽ 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 theo tham chiếu, khi chúng ta chuyển tham chiếu/địa chỉ vị trí của tham số, nó sẽ sao chép và gán chúng cho đối số cục bộ của hàm

Đó là ví dụ về cuộc gọi theo tham chiếu?

Ví dụ gọi theo tham chiếu. Hoán đổi giá trị của hai biến .

Sự khác biệt giữa cuộc gọi theo tham chiếu và cuộc gọi theo giá trị giải thích bằng ví dụ là gì?

Trong Gọi theo giá trị, một bản sao của biến được truyền, trong khi trong Gọi theo tham chiếu, chính biến đó được truyền . Trong Gọi theo giá trị, các đối số chính thức và thực tế sẽ được tạo ở các vị trí bộ nhớ khác nhau, trong khi trong Gọi theo tham chiếu, các đối số chính thức và thực tế sẽ được tạo ở cùng một vị trí bộ nhớ.

gọi theo giá trị với ví dụ là gì?

Phương thức gọi theo giá trị truyền đối số cho hàm sao chép giá trị thực của đối số vào tham số chính thức của hàm. Trong trường hợp này, những thay đổi được thực hiện đối với tham số bên trong hàm không ảnh hưởng đến đối số. Theo mặc định, lập trình C sử dụng lệnh gọi theo giá trị để truyền đối số

Chủ Đề