fbpx
close

Params là gì? Giải mã bí ẩn về khái niệm tham số trong lập trình

Tác giả: Đông Tùng Ngày cập nhật: 18/07/2024 Chuyên mục: Kiến thức máy tính
Disclosure
Website Wiki.tino.org được cung cấp bởi Tino Group. Truy cập và sử dụng website đồng nghĩa với việc bạn đồng ý với các điều khoản và điều kiện trong chính sách bảo mật - điều khoản sử dụng nội dung. Wiki.tino.org có thể thay đổi điều khoản sử dụng bất cứ lúc nào. Việc bạn tiếp tục sử dụng Wiki.tino.org sau khi thay đổi có nghĩa là bạn chấp nhận những thay đổi đó.
Why Trust Us
Các bài viết với hàm lượng tri thức cao tại wiki.tino.org được tạo ra bởi các chuyên viên Marketing vững chuyên môn và được kiểm duyệt nghiêm túc theo chính sách biên tập bởi đội ngũ biên tập viên dày dặn kinh nghiệm. Mọi nỗ lực của chúng tôi đều hướng đến mong muốn mang đến cho cộng đồng nguồn thông tin chất lượng, chính xác, khách quan, đồng thời tuân thủ các tiêu chuẩn cao nhất trong báo cáo và xuất bản.

Bạn đã bao giờ thắc mắc về những giá trị bí ẩn được truyền vào các hàm lập trình? Làm thế nào mà một dòng code đơn giản có thể tạo ra vô số kết quả khác nhau? Câu trả lời cho tất cả những bí ẩn này nằm ở params – những “chìa khóa” tưởng chừng đơn giản nhưng lại ẩn chứa sức mạnh phi thường. Vậy cụ thể Params là gì? Các bạn hãy cùng TinoHost tìm hiểu qua bài viết dưới đây nhé!

Params là gì?

Khái niệm Params trong lập trình

Trong lập trình, Params là viết tắt của “Parameters“, tạm dịch: tham số. Tham số là các giá trị đầu vào được truyền vào hàm, phương thức hoặc lớp trong lập trình để thực hiện các tính toán cụ thể. Vai trò của những giá trị này là giúp hàm hoặc phương thức hoạt động linh hoạt hơn, cho phép chúng ta sử dụng cùng một đoạn mã với các giá trị đầu vào khác nhau.

params-la-gi
Params là gì?

Giống như khi truy cập một trang web, bạn sẽ nhập nhiều tham số trong thanh địa chỉ để lọc kết quả tìm kiếm hoặc sắp xếp dữ liệu theo một tiêu chí cụ thể.

Ví dụ:

Khi gọi một hàm tính diện tích hình vuông, bạn cần cung cấp chiều dài cạnh của hình vuông dưới dạng param để hàm có thể tính toán diện tích chính xác.

Nguồn gốc của khái niệm tham số

Khái niệm tham số xuất hiện lần đầu tiên trong lĩnh vực toán học, được sử dụng để biểu thị các giá trị được truyền vào một hàm hoặc phương trình. Ví dụ, trong phương trình đường thẳng y = mx + b, m và b là các tham số xác định độ dốc và điểm cắt trục y của đường thẳng.

Vào thập niên 1950-1960, khi các ngôn ngữ lập trình đầu tiên như Fortran và Lisp ra đời, khái niệm tham số đã được sử dụng để truyền dữ liệu vào các hàm và thủ tục. Điều này giúp các chương trình trở nên linh hoạt và dễ tái sử dụng hơn.

nguon-goc-cua-khai-niem-tham-so
Nguồn gốc của khái niệm tham số

Trong giai đoạn 1970-1980, các ngôn ngữ lập trình như C và Pascal đã tiếp tục phát triển khái niệm, cho phép truyền tham số bằng giá trị và bằng tham chiếu. Điều này tạo ra một cách tiếp cận mạnh mẽ hơn để quản lý dữ liệu trong chương trình.

Hiện nay, khái niệm tham số đã trở thành một phần không thể thiếu trong hầu hết các ngôn ngữ lập trình hiện đại như Python, Java, JavaScript và C#. Các ngôn ngữ này không chỉ hỗ trợ truyền tham số đơn giản mà còn cho phép sử dụng các tham số mặc định, tham số tùy biến và các cơ chế truyền tham số phức tạp khác.

Phân loại tham số trong Lập trình

Trong lập trình, các tham số có thể được phân loại dựa trên cách chúng được truyền vào hàm, giá trị mặc định, và cách chúng được xử lý bên trong hàm. Dưới đây là một số phân loại chính của tham số trong lập trình:

Tham số hình thức (Formal Parameters)

Đây là các biến được khai báo trong định nghĩa hàm hoặc phương thức và đại diện cho các giá trị mà hàm sẽ nhận khi được gọi.

Ví dụ trong Python:

def cong(a, b):
return a + b

Tham số thực tế (Actual Parameters)

Đây là các giá trị cụ thể được truyền vào hàm khi hàm được gọi.

Ví dụ trong Python:

ket_qua = cong(5, 3)

Tham số mặc định (Default Parameters)

Đây là các tham số có giá trị mặc định. Nếu người gọi hàm không cung cấp giá trị cho tham số đó, giá trị mặc định sẽ được sử dụng.

Ví dụ trong Python:

def nhan(a, b=1):
return a * b
ket_qua1 = nhan(5, 2) # Kết quả là 10
ket_qua2 = nhan(5) # Kết quả là 5 (vì b mặc định là 1)

Tham số biến đổi (Variadic Parameters)

Đây là các tham số cho phép hàm nhận một số lượng biến đổi các đối số. Trong Python, chúng được biểu thị bằng dấu hoa thị (*args cho các tham số không có tên và **kwargs cho các tham số có tên).

Ví dụ trong Python:

def tong(*args):
return sum(args)
ket_qua = tong(1, 2, 3, 4) # Kết quả là 10
phan-loai-tham-so-trong-lap-trinh
Phân loại tham số trong Lập trình

Tham số truyền bằng giá trị (Pass-by-Value)

Trong phương pháp này, một bản sao của giá trị thực tế được truyền vào hàm. Bất kỳ thay đổi nào đối với tham số trong hàm đều không ảnh hưởng đến giá trị ban đầu.

Ví dụ trong C++:

void tangGiaTri(int a) {
a = a + 1;
}
int main() {
int x = 5;
tangGiaTri(x);
// x vẫn là 5
}

Tham số truyền bằng tham chiếu (Pass-by-Reference)

Trong phương pháp này, một tham chiếu đến giá trị thực tế được truyền vào hàm. Bất kỳ thay đổi nào đối với tham số trong hàm đều ảnh hưởng trực tiếp đến giá trị ban đầu.

Ví dụ trong C++:

void tangGiaTri(int &a) {
a = a + 1;
}
int main() {
int x = 5;
tangGiaTri(x);
// x sẽ là 6
}

Tham số từ khóa (Keyword Parameters)

Đây là các tham số được truyền vào hàm bằng cách chỉ định rõ tên của chúng. Điều này giúp tăng cường độ rõ ràng và tránh nhầm lẫn khi hàm có nhiều tham số.

Ví dụ trong Python:

def inThongTin(ten, tuoi):
print(f"Ten: {ten}, Tuoi: {tuoi}")
inThongTin(tuoi=25, ten="An") # Kết quả sẽ là: Ten: An, Tuoi: 25

Tham số bắt buộc (Required Parameters)

Đây là các tham số mà người gọi hàm bắt buộc phải cung cấp giá trị khi gọi hàm.

Ví dụ trong Python:

def chao(ten):
print(f"Xin chao, {ten}!")
chao("An") # Kết quả sẽ là: Xin chao, An!

Tham số tùy chọn (Optional parameters)

Đây là các tham số trong hàm hoặc phương thức mà người gọi thực hiện không bắt buộc phải cung cấp giá trị khi gọi hàm. Nếu không cung cấp giá trị cho các tham số này, chúng sẽ sử dụng giá trị mặc định được định nghĩa sẵn trong hàm.

Ví dụ trong Python:

def chao(ten, loi_chao="Xin chào"):
print(f"{loi_chao}, {ten}!")
chao("An") # Kết quả sẽ là: Xin chào, An!
chao("An", "Hello") # Kết quả sẽ là: Hello, An!

Lợi ích và hạn chế khi sử dụng tham số trong lập trình

Lợi ích

Tăng tính linh hoạt

Tham số cho phép bạn sử dụng cùng một hàm, phương thức hoặc lớp cho nhiều mục đích khác nhau bằng cách cung cấp các tham số khác nhau. Ví dụ, hàm print() trong Python có thể được sử dụng để in ra nhiều loại dữ liệu khác nhau, chẳng hạn như số, chuỗi, danh sách, …, nếu được cung cấp các tham số phù hợp.

Tái sử dụng code

Thay vì viết nhiều hàm khác nhau cho các tác vụ tương tự, bạn chỉ cần viết một hàm duy nhất và đưa vào các tham số để xử lý các trường hợp khác nhau. Điều này giúp giảm thiểu việc lặp lại code và tăng cường tính tái sử dụng.

Ví dụ, bạn có thể tạo một hàm để tính diện tích của các hình dạng khác nhau, chẳng hạn như hình vuông, hình chữ nhật, hình tròn, …, bằng cách sử dụng tham số để biểu thị loại hình dạng.

loi-ich-khi-su-dung-tham-so-trong-lap-trinh
Lợi ích khi sử dụng tham số trong lập trình

Dễ bảo trì

Khi cần thay đổi logic xử lý, bạn chỉ cần sửa đổi mã trong hàm hoặc phương thức thay vì phải thay đổi mã ở nhiều chỗ khác nhau trong chương trình. Điều này giúp việc bảo trì và nâng cấp code trở nên dễ dàng hơn. Ngoài ra, tham số còn giúp bạn viết code dễ đọc hơn bằng cách cho phép nhóm các chức năng chung lại với nhau.

Cá nhân hóa

Tham số cho phép bạn cá nhân hóa trải nghiệm người dùng bằng cách cung cấp cho họ các tùy chọn khác nhau. Ví dụ, bạn có thể tạo một trang web cho phép người dùng lọc kết quả tìm kiếm hoặc sắp xếp dữ liệu theo các tiêu chí cụ thể bằng cách sử dụng tham số trong thanh địa chỉ.

Dễ dàng kiểm thử

Tham số giúp bạn dễ dàng kiểm thử code bằng cách cho phép bạn cung cấp các giá trị đầu vào khác nhau cho cùng một hàm, phương thức hoặc lớp.

Hạn chế

Quá nhiều tham số có thể làm rối khi đọc

Nếu có quá nhiều tham số, code có thể trở nên khó đọc và khó hiểu. Điều này cũng làm tăng nguy cơ lỗi do nhầm lẫn trong việc truyền các giá trị cho tham số.

Do đó, bạn nên thiết kế code cẩn thận và sử dụng các tên tham số mô tả rõ ràng để giúp người đọc hiểu rõ mục đích của từng tham số.

han-che-khi-su-dung-tham-so-trong-lap-trinh

Khó kiểm soát đầu vào

Khi sử dụng quá nhiều tham số tùy chọn hoặc tham số biến động, việc kiểm soát và xác thực đầu vào trở nên khó khăn hơn, có thể dẫn đến lỗi runtime nếu không được xử lý đúng cách.

Có thể ảnh hưởng đến hiệu suất

Sử dụng tham số sai cách có thể ảnh hưởng đến hiệu suất của chương trình. Ví dụ, nếu bạn truyền một danh sách lớn vào một hàm và hàm này xử lý từng phần tử trong danh sách, hiệu suất của chương trình sẽ chậm hơn so với việc truyền trực tiếp các giá trị cần thiết cho hàm.

Ví dụ chi tiết về cách sử dụng tham số trong một đoạn code

Ví dụ

Dưới đây là một ví dụ chi tiết về cách sử dụng tham số trong Python, bao gồm tham số bắt buộc, tham số tùy chọn, và tham số biến động. Chúng ta sẽ viết một hàm để tính tổng và in ra kết quả của các số.

def tinh_tong(so_bat_buoc, *args, **kwargs):
# Bước 1: Tính tổng của tham số bắt buộc
tong = so_bat_buoc
# Bước 2: Tính tổng của các tham số biến động không có tên (*args)
for so in args:
tong += so
# Bước 3: Tính tổng của các tham số biến động có tên (**kwargs)
for key, value in kwargs.items():
tong += value
# Bước 4: In ra kết quả
print(f"Tổng các số là: {tong}"
# Gọi hàm với một tham số bắt buộc
tinh_tong(10) # Kết quả: Tổng các số là: 10
# Gọi hàm với một tham số bắt buộc và các tham số không có tên
tinh_tong(10, 20, 30) # Kết quả: Tổng các số là: 60
# Gọi hàm với một tham số bắt buộc, các tham số không có tên và các tham số có tên
tinh_tong(10, 20, 30, so1=40, so2=50) # Kết quả: Tổng các số là: 150

Giải thích

Định nghĩa hàm với tham số:

Hàm tinh_tong được định nghĩa với ba loại tham số:

  • so_bat_buoc: Tham số bắt buộc, đại diện cho giá trị đầu tiên mà hàm phải nhận.
  • *args: Tham số biến động không có tên, cho phép truyền một số lượng bất kỳ các đối số.
  • **kwargs: Tham số biến động có tên, cho phép truyền một số lượng bất kỳ các đối số dưới dạng từ điển.

Bước 1: Tính tổng của tham số bắt buộc:

  • tong = so_bat_buoc khởi tạo biến tong bằng giá trị của tham số bắt buộc so_bat_buoc.

Bước 2: Tính tổng của các tham số biến động không có tên (args):

  • for so in args: lặp qua tất cả các đối số không có tên được truyền vào hàm.
  • tong += so cộng từng giá trị trong args vào biến tong.

Bước 3: Tính tổng của các tham số biến động có tên (kwargs):

  • for key, value in kwargs.items(): lặp qua tất cả các cặp key-value trong kwargs.
  • tong += value cộng giá trị của từng cặp key-value vào biến tong.

Bước 4: In ra kết quả:

  • print(f”Tổng các số là: {tong}”) in ra kết quả cuối cùng của biến tong.

Các lần gọi hàm và kết quả:

Gọi hàm với một tham số bắt buộc:

tinh_tong(10) # Kết quả: Tổng các số là: 10

Chỉ có so_bat_buoc được truyền vào, nên tổng bằng 10.

Gọi hàm với một tham số bắt buộc và các tham số không có tên:

tinh_tong(10, 20, 30) # Kết quả: Tổng các số là: 60

so_bat_buoc là 10, args chứa [20, 30]. Tổng là 10 + 20 + 30 = 60.

Gọi hàm với một tham số bắt buộc, các tham số không có tên và các tham số có tên:

Gọi hàm với một tham số bắt buộc, các tham số không có tên và các tham số có tên:

tinh_tong(10, 20, 30, so1=40, so2=50) # Kết quả: Tổng các số là: 150

so_bat_buoc là 10, args chứa [20, 30], kwargs chứa {so1: 40, so2: 50}. Tổng là 10 + 20 + 30 + 40 + 50 = 150.

Kết luận

Trong lập trình, việc sử dụng các tham số là một khía cạnh quan trọng giúp tăng tính linh hoạt và hiệu quả cho các hàm và phương thức. Hiểu rõ và sử dụng đúng các loại tham số không chỉ giúp code trở nên rõ ràng và dễ bảo trì mà còn tăng cường khả năng tái sử dụng cũng như giảm thiểu lỗi. Tuy nhiên, bạn cũng cần quản lý cẩn thận tham số để tránh những hạn chế và rủi ro tiềm ẩn. Chúc bạn chinh phục thành công trên con đường chinh phục thế giới lập trình đầy thú vị!

Những câu hỏi thường gặp

 

Không sử dụng tham số trong lập trình có được không?

Có thể viết mã mà không sử dụng tham số, nhưng điều này sẽ gây ra nhiều hạn chế. Việc không sử dụng tham số sẽ khiến code của bạn trở nên kém linh hoạt. Bạn sẽ phải viết code riêng cho từng trường hợp cụ thể, thay vì có thể tái sử dụng code với các tham số khác nhau.

Ngoài ra, code không sử dụng tham số thường khó bảo trì hơn. Khi bạn cần thay đổi chức năng của code, bạn sẽ phải sửa đổi code ở nhiều nơi khác nhau, thay vì chỉ cần thay đổi giá trị của tham số.

Tham số có thể được sử dụng trong ngôn ngữ lập trình nào?

Tham số có thể được sử dụng trong hầu hết các ngôn ngữ lập trình hiện đại, bao gồm: Python, Java, C/C++, PHP, JavaScript, Ruby,…

Tham số và đối số có khác nhau không?

Tham số được định nghĩa khi khai báo hàm, phương thức hoặc lớp. Trong khi đó, đối số là giá trị thực tế được truyền vào hàm, phương thức hoặc lớp khi hàm được gọi. Khi gọi hàm, phương thức hoặc lớp, bạn sẽ cung cấp các giá trị cụ thể cho từng tham số.

Khái niệm tham số còn được sử dụng ở những lĩnh vực nào?

Khái niệm “tham số” không chỉ được sử dụng trong lập trình mà còn xuất hiện trong nhiều lĩnh vực khác nhau, bao gồm: Toán học, Khoa học vật lý, Kinh tế học, Y học, Kỹ thuật và công nghệ, Giáo dục và Marketing,…

Đông Tùng

Senior Technology Writer

Là cử nhân Quản trị kinh doanh của Trường Đại học Tài chính - Marketing, Tùng bắt đầu làm việc tại Tino Group từ năm 2021 ở vị trí Content Marketing để thỏa mãn niềm đam mê viết lách của bản thân. Sở hữu khả năng sáng tạo đặc biệt, anh cùng đội ngũ của mình đã tạo nên những chiến dịch quảng cáo độc đáo cùng vô số bài viết hữu ích về nhiều chủ đề khác nhau. Sự tỉ mỉ, kiên trì và tinh thần sáng tạo của Tùng đã góp phần lớn vào thành công của Tino Group trong lĩnh vực marketing trực tuyến.

Xem thêm bài viết

Bài viết liên quan

Xem nhiều

giá tốt, chất lượng cao mình rất hài lòng
chất lượng dịch vụ tốt lắm...á
chất lượng dịch vụ rất tốt.
giá tốt, chất lượng cao mình rất hài lòng
Dịch vụ chăm sóc khách hàng tốt
Dùng rất oke nha mọi người
Dịch vụ chăm sóc khách hàng tốt, mình rất hài lòng về dịch vụ của TINOHOST
Đã mua rất nhiều tên miền tại Tinohost. Chất lượng tốt
dịch vụ và chăm sóc khách hàng rất tốt , mình rất thích tinohost , mình đã sử dụng nhiều dịch vụ của tinohost rồi
tuyệt vời chăm sóc khách hàng quá tốt
dịch vụ và chăm sóc khách hàng rất tốt , mình rất thích tinohost , mình đã sử dụng nhiều dịch vụ của tinohost rồi
Quá tốt - Quá xuất sắc và tuyệt
Hỗ trợ nhiệt tình. dịch vụ chất lượng
Đội ngũ support rất nhiệt tình.
Sử dụng dịch vụ của bạn Tinohost 2 3 năm nay chưa khi nào phải thất vọng.
host dùng chất lượng, miền giá rẻ
dịch vụ hỗ trợ rất nhanh, tốc độ hosting tốt
Hộ trợ tốt, nhanh. Tuyệt vời 🥰
tuyệt vời, dịch vụ cực tốt và hỗ trợ siêu nhanh
Làm việc nhanh chóng, giá thành hợp lí.
Hosting rẻ và nhanh thích hợp cho học sinh sinh viên như mình
dịch vu tốt ! Sẽ sử dụng thưởng xuyên !
Mỗi lần cần gì, nhắn Tino là được hỗ trợ ngay. Nên một đứa không biết gì về web như mình cũng tạo được blog. Cơ bản mình chỉ lo viết, mọi thứ có anh IT của Tino lo hết.
Nhìn chung thì Tino xứng đáng là một trong những nhà cung cấp host giá rẻ #1 tại VN. Bên này support khá nhanh và nhiệt tình nên quá trình sử dụng diễn ra tương đối trơn tru.
Chất lượng quá ok so với mức giá. Các SME có thể tham khảo để dựng web nhé.
uy tín chất lượng chuẩn cho 5 sao
Dịch vụ nhanh chóng thanh toán tiện lợi
Dịch vụ nhanh chóng, giá cả hợp lý
Chất lượng phục vụ ok, support khá nhanh chóng và chất lượng gói lớn tốt, gói nhỏ cần tốt hơn.
Dịch vụ tốt, giá cả hợp lý👍
Rất hay, rất tốt, rất hữu ích
Hỗ trợ rất nhanh và nhiệt tình
Chất lượng phục vụ ok, support khá nhanh chóng và chất lượng gói lớn tốt, gói nhỏ cần tốt hơn.
dịch vụ tốt, thanh toán nhanh chống
Hài lòng dịch vụ của tinohost
Sau khi sử dụng dịch vụ của TinoHost. Mình thấy website load nhanh hơn hẳn so với sử dụng ở nhà cung cấp cũ. Giá cả do mình đc mua với giá sale 99% của TinoHost nên rất là rẻ. Gói mình mua là gòi Hosting Bussiness 20GB. Thông số cấu hình cao nên web load khá mượt
Chúc TinoHost phát triển!
domain rẻ, có nhiều gói hữu ích thích hợp cho sinh viên
Hài lòng về dịch vụ và tư vấn
Dịch vụ tốt . Support nhiệt tình
Chất lượng OK
Nhanh chóng
dịch vụ rất tốt
Nhân viên support nhanh, hỗ trợ nhiệt tình, giao dịch tự động nên khá tiện
Đã dùng nhiều dịch vụ tại Tinohost, chất lượng tốt, rất hài lòng ...😀
Sự dụng rất hài lòng với các dịch vụ của tinohost
Dịch vụ tốt, uy tín chất lượng
Tino dịch vụ quá tuyệt vời
Giá rẻ, dịch vụ tốt, hỗ trợ nhanh chóng
dịch vụ rất tốt rất tuyệt vời
Giá hợp lý cho người mới dùng
Mình thấy Tinohost có giao diện thân thiện, dễ đăng ký sử dụng cho người mới tập tành làm web như mình. Hosting hỗ trợ có nhiều lựa chọn về dung lượng và giá cả! Thanh toán qua momo thuận tiện. Recommended!
wed quá ok làm việc nhanh ngọn
Dịch vụ tốt. Khá hài lòng vì support nhiệt tình
Dịch vụ quá tuyệt vời danh cho các bạn
Xin cảm ơn đội ngủ kỹ thuật. Các bạn rất chuyên nghiệp và thân thiện. Tôi sẽ giới thiệu các bạn cho bạn bè của mình.
Dịch vụ hỗ trợ tốt, ổn định, thanh toán dễ dàng.
Mình từng dùng VPS bên Vietel IDC, hay gặp lỗi vặt và bảo trì liên tục. Nhưng Tino thì rất ok
dùng tốt, nhanh, dễ sử dụng
Giao diện đẹp mắt, dễ sử dụng
Đề nghị xem lại vấn đề phục vụ khách hàng (livchat)!
Good. Tốc độ cao. Tùy chỉnh nhiều trên shared hosting.
hosting ngon, giá luôn rẻ, tôi làm code nhưng rất thích sài host tino
Tino cung cấp host rất chuyên nghiệp. Đội ngũ kỹ thuật hỗ trợ rất tận tâm và nhiệt tình. Mình sẽ tiếp tục ủng hộ Tino 🥰.
Rất tuyệt vời🙆🙆🙆🙆🙆🙆🙆🙆🙆
Xét về tầm giá thì TinoHost rất đáng để mua và sử dụng lâu dài.
Dịch vụ chất lượng, ủng hộ 1 năm nay rồi
tuyệt vời quá đi,tuyệt vời quá đi
Tốc độ ổn định, tư vấn nhiệt tình
mới tham gia, mong mọi người hỗ trợ thêm
Tốc độ khá tốt với gói rẻ nhất 9k
Giao dịch nhanh,support nhanh và tận tình,chuyển miền nhanh,Hosting Ok
mua sản phẩm dịch vụ tinhot rất tốt tặng ad 5tr ** luon nè🥰🥰🥰
tinohost
một truong những nơi bán hosting rẻ, chất lượng dành cho anh em nào cần để làm web
mua tại : tinohost.com
mình đã mua 2 tên miền + hosting của Tino Host . quả nhiên hiệu quả SEO cải thiện đáng kể và chứng chỉ bảo mật HTTPS miễn phí của Tino Host cũng ko kém phần quang trọng cho việc SEO website của mình
Tino host là một trong nhà cung cấp tốt nhất mình từng sử dụng. Với ưu đãi khuyến mại nhiều, giá thành rẻ kèm theo đó là sự support tuyệt vời của các admin. Nếu ai chưa lựa chọn được nhà cung cấp cho bản thân mình thì Tinohost sẽ là câu trả lời tốt nhất.
dịch vụ tốt, đội ngũ support nhiệt tình, cảm ơn #tinohost
Uy tín, chất lượng, nhân viên hỗ trợ nhiệt tình
mua 2 domain tại tinohost dùng rất chất lượng
Đã mua 02 domain và hosting tại TinoHost, hài lòng cách tư vấn và chăm sóc khách hàng của TinoHost :)
Giá rẻ cấu hình mạnh, black friday là sự bùng nổ của Tino
Hay web bán tài nguyên rất ngon
dịch vụ tốt, mua luôn host chất lượng cao của công ty nhân dịp blackfriday, cảm ơn #tinohost
Dịch vụ rất tốt, nhân viên tận tình.
Hỗ trợ nhiệt tình nhất trong các nhà cung cấp mih từng dùng. Không những server mạnh, ưu đãi có 1 không 2 mà còn nhiều plugin pro bản quyền đính kèm nữa. Quyết định gắn bó "Lifetime" với tino 😁
Dịch vụ tốt hỗ trợ nhanh chóng
Thích cách tư vấn tận tình và nhanh gọn của Tino mỗi khi có vấn đề trục trặc. Hosting ổn định, giá rẻ tốt lắm nhé mọi người
mình có mua 2 tên msiền của tino, mình rât thích cách tư vấn và chăm sóc khách hàng tại đây. Ngoài ra giá domain khá rẻ, phù hợp cho mọi người. 5 sao
Dịch vụ tốt, support nhiệt tình
tinohost tuyệt vời giá cả hợp lý
domain mua rất rẻ :))))
tốt, chất lượng, hostingok
Hosting tốt, giá cả cạnh tranh
Tuyệt vời , Hosting quá ổn
Chất lượng lắm ạ. Domain mua rẻ nhất thị trường
Dịch vụ tốt và chất lượng
Chất lượng lắm ạ. Domain mua rẻ nhất thị trường
Tino Host dùng quá ngon đi !💥💥💥💥💥
Tôi đã mua domain và hosting của các nhà cung cấp khác rồi, nhưng thực sự thấy không tốt bằng Tino, ngoài ra còn hỗ trợ rất tốt. Cảm ơn tino nhiều!
Next Reviews
CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO
Trụ sở chính: L17-11, Tầng 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn,  Phường Bến Nghé, Q. 1, TP. Hồ Chí Minh

Văn phòng kinh doanh: Số 42 Trần Phú, Phường 4, Quận 5, TP HCM
GPKD số 0315679836 do Sở KH và ĐT TP Hồ Chí Minh cấp
Hotline: 0364 333 333
Góp ý/Phản ánh dịch vụ: 0933 000 886