10/10/2018, 11:22

[HELP][PHP] kí tự & trước tên hàm

Em đọc nhiều code thấy có kí tự & trước tên hàm
ví dụ
PHP Code:
function &a($var){
....

hoặc

PHP Code:
$a=&functionname($var); 
Vậy cho em hỏi kí tự & để làm gì vậy. Em xin cảm ơn.
dungk3cv1 viết 13:25 ngày 10/10/2018
Được gửi bởi env_php
Em đọc nhiều code thấy có kí tự & trước tên hàm
ví dụ
PHP Code:
function &a($var){
....

hoặc

PHP Code:
$a=&functionname($var); 
Vậy cho em hỏi kí tự & để làm gì vậy. Em xin cảm ơn.
cái đấy là biến trong PHP bạn ạ.
Biến được xem là vùng nhớ dữ liệu tạm thời. Và giá trị có thể thay đổi được. Biến được bắt đầu bằng ký hiệu "$". Và theo sau chúng là 1 từ, 1 cụm từ nhưng phải viết liền hoặc có gạch dưới.

1 biến được xem là hợp lệ khi nó thỏa các yếu tố :

+ Tên của biến phải bắt đầu bằng dấu gạch dưới và theo sau là các ký tự, số hay dấu gạch dưới.

+ Tên của biến không được phép trùng với các từ khóa của PHP.

Trong PHP để sử dụng 1 biến chúng ta thường phải khai báo trước, tuy nhiên đối với các lập trình viên khi sử dụng họ thường xử lý cùng một lúc các công việc, nghĩa là vừa khái báo vừa gán dữ liệu cho biến.

Bản thân biến cũng có thể gãn cho các kiểu dữ liệu khác. Và tùy theo ý định của người lập trình mong muốn trên chúng.
env_php viết 13:35 ngày 10/10/2018
Cảm ơn vì bạn đã trả lời, nhưng mình muốn hỏi về công dụng của kí tự & khi đặt trước tên hàm. Thanks
VnVision viết 13:23 ngày 10/10/2018
Bạn tham khảo ở đây: http://php.net/manual/en/language.references.pass.php

Ký tự này đc dùng nhiều đặc biệt ở những script đc viết để chạy trên php 4 ngày xưa, khi các object được truyền giữa các hàm bằng việc tạo ra một object mới thay vì trỏ tới cùng một object như trong php5.
langtuquy viết 13:34 ngày 10/10/2018
Đấy là biến con trỏ và con trỏ hàm. Bạn search google về khái niệm này có rất nhiều tài liệu.
VnVision viết 13:27 ngày 10/10/2018
Được gửi bởi langtuquy
Đấy là biến con trỏ và con trỏ hàm. Bạn search google về khái niệm này có rất nhiều tài liệu.
Tiếng Việt là tham chiếu (reference) chứ ko phải con trỏ (pointer)
langtuquy viết 13:37 ngày 10/10/2018
Được gửi bởi VnVision
Tiếng Việt là tham chiếu (reference) chứ ko phải con trỏ (pointer)
Chính xác thì PHP thích gọi là "reference" thay cho "pointer" trong các ngôn ngữ lập trình hướng đối tượng như Java, C++. Bởi vì khi đặt dấu & trước biến thì nó trỏ chính xác đến vị trí ngăn nhớ chứa biến đó chứ không phải là giá trị của biến đó
VnVision viết 13:23 ngày 10/10/2018
Được gửi bởi langtuquy
Chính xác thì PHP thích gọi là "reference" thay cho "pointer" trong các ngôn ngữ lập trình hướng đối tượng như Java, C++. Bởi vì khi đặt dấu & trước biến thì nó trỏ chính xác đến vị trí ngăn nhớ chứa biến đó chứ không phải là giá trị của biến đó
Gọi reference vì đơn giản đó ko phải pointer:

Từ What References Are:

They are not like C pointers; for instance, you cannot perform pointer arithmetic using them, they are not actual memory addresses, and so on. .... Instead, they are symbol table aliases.
Vd giải thích:
http://www.php.net/manual/en/languag...nces.arent.php
http://www.php.net/manual/en/languag...nces.php#82791
Bài liên quan
0