Trước đây, chúng ta đã thảo luận về cách chuyển đổi chuỗi thành mảng trong php bằng 3 phương thức khác nhau. Hôm nay, chúng ta sẽ tìm hiểu cách chúng ta có thể chuyển đổi mảng PHP thành chuỗi
Chuyển đổi Mảng PHP thành Chuỗi bằng cách sử dụng implode[]
PHP đi kèm với chức năng gốc của nó để chuyển đổi Mảng thành chuỗi có tên là implode[]
Hàm implode[] có hai cách thực hiện
Hàm implode[] chấp nhận hai đối số - Chuỗi dùng để nối các phần tử mảng & chính Mảng
Thí dụ. Ở đây chúng ta sẽ nối các phần tử mảng bằng cách sử dụng ", " để lưu trữ nó dưới dạng các giá trị được phân tách bằng dấu phẩy
Hàm implode[] chỉ chấp nhận một đối số - Mảng được chuyển đổi
Ở đây, chuỗi được sử dụng để nối các phần tử mặc định là chuỗi rỗng. Do đó, các phần tử được nối với nhau mà không có bất kỳ dấu phân cách nào
Thí dụ
Ghi chú. Nếu mảng PHP chứa các mục không phải là chuỗi, hàm implode trước tiên sẽ chuyển đổi nó thành chuỗi và sử dụng nó trong chuỗi đã nối. Các giá trị Boolean được biểu diễn dưới dạng → true = 1, false = 0
Chuyển đổi mảng kết hợp PHP thành chuỗi bằng cách sử dụng implode[]
Hàm implode[] không chỉ có thể nối các mảng với chỉ số nguyên mà còn với chỉ số chuỗi, chúng ta gọi nó là mảng kết hợp
Có hai cách tiếp cận này
1] Chỉ kết hợp các giá trị thành chuỗi
Điều này rất đơn giản vì hàm implode[] chỉ xem xét giá trị của mục mảng chứ không phải chỉ mục. Vì vậy, bạn có thể sử dụng hàm implode[] trực tiếp như bên dưới
2] Kết hợp cả Chỉ mục và giá trị thành chuỗi
Nếu bạn muốn sử dụng cả giá trị và chỉ mục trong khi nối mảng với chuỗi, thì nó sẽ phức tạp. Có nhiều cách để đạt được điều này. Ngoài ra, nó phụ thuộc vào cách bạn muốn biểu thị chỉ mục và giá trị trong chuỗi. Hàm implode[] không có bất kỳ chức năng gốc nào để xử lý các tình huống như vậy, do đó, chúng tôi sẽ sử dụng nhiều hàm PHP bao gồm hàm implode[] để đạt được điều tương tự
Thí dụ. Sử dụng cùng một mảng kết hợp được hiển thị ở trên, chúng tôi sẽ sử dụng cả chỉ mục và giá trị i. e tên người dùng và địa chỉ email và kết hợp nó như sau
Trong ví dụ trên, chúng tôi đang kết hợp tên người dùng và email thông qua màu sắc [. ] bằng cách áp dụng hàm tùy chỉnh của chúng tôi cho từng phần tử trong mảng bằng cách sử dụng array_walk và sau đó sử dụng hàm implode[], chúng tôi chuyển đổi nó thành chuỗi
Chuyển đổi Mảng PHP thành Chuỗi bằng cách sử dụng implode[]
Mảng không chỉ có thể chứa các kiểu dữ liệu chính mà cả Mảng và đối tượng. Nếu Mảng của bạn chứa các mảng thì việc kết hợp tất cả các mục ở cấp độ phụ có thể trở nên phức tạp
Hàm nổ [] không thể kết hợp các mục ở cấp phụ, do đó, nó không hoạt động trực tiếp với mảng của mảng
Thí dụ. Lưu ý ở đây, phương thức implode[] chỉ xem xét các mục cấp cao nhất và trong khi chuyển đổi các mục thành chuỗi, nó trả về "Mảng" dưới dạng chuỗi
Vậy chúng ta nên làm gì?
Có nhiều cách khác nhau để đạt được điều này và phụ thuộc vào loại mảng. Đối với ví dụ đơn giản của chúng tôi ở trên, cách tiếp cận đơn giản nhất là lặp qua mảng để truy xuất từng mảng con và nối chúng
Thí dụ
Nhưng nếu mảng của bạn có nhiều cấp độ hơn - mảng nhiều chiều thì bạn sẽ phải kiểm tra xem mục đó có thuộc kiểu Array hay không. Nếu có thì cũng lặp qua mảng đó
Chuyển đổi Mảng PHP thành Chuỗi bằng cách sử dụng json_encode[] và serialize[]
Cũng có nhiều cách khác để chuyển đổi mảng PHP thành chuỗi. Chúng ta sẽ khám phá hai phương pháp để chuyển đổi mảng thành chuỗi trong PHP. Các chức năng này mặc dù trả về chuỗi, có mục đích khác nhau
1] json_encode[]
Hàm này rất hữu ích để không chỉ chuyển đổi mảng PHP thành chuỗi mà còn chuyển nó sang javascript. Bạn không thể chuyển trực tiếp các mảng PHP sang JavaScript, vì vậy bạn có thể chuyển đổi nó thành chuỗi JSON bằng cách sử dụng json_encode[] và sử dụng nó một cách hiệu quả trong JavaScript
2] tuần tự hóa []
Hàm này rất hữu ích khi bạn muốn chuyển đổi mảng PHP thành biểu diễn có thể lưu trữ. Giống như, khi bạn muốn lưu trữ mảng PHP trong bộ nhớ đệm, chức năng này có thể hữu ích
Chuyển đổi một biến PHP thành một chuỗi khá dễ dàng. Chúng ta có thể chỉ cần truyền biến thành một chuỗi và lặp lại nội dung như vậy
Đây là một trong những cách phổ biến nhất để chuyển đổi một giá trị thành một chuỗi, được gọi là ép kiểu biến. Trong đoạn mã trên, chúng tôi đã 'truyền' biến thành một chuỗi
Một tùy chọn tương tự khác là sử dụng hàm strval[]
, cũng thực hiện điều tương tự. Việc chuyển đổi được thực hiện tự động trong phạm vi của biểu thức cần chuỗi. Điều này thường xảy ra khi chức năng in hoặc lặp lại được sử dụng hoặc với một biến
Thật không may, điều này chỉ áp dụng nếu biến đó là một trong các loại sau
- Boolean – Giá trị Boolean TRUE được chuyển thành chuỗi “1” trong khi Boolean FALSE được chuyển thành chuỗi trống “”
- Số nguyên – Khi một số nguyên được chuyển đổi thành một chuỗi, cùng một số được biểu thị bằng văn bản ở dạng Chuỗi
- Mảng – Mảng cũng có thể được chuyển đổi chuỗi. Nhưng không thể sử dụng trực tiếp echo và print để hiển thị nội dung của mảng. Thay vào đó, chúng phải được sử dụng như echo $arr[‘foo’]
- Đối tượng – Cho đến PHP 4, Đối tượng có thể được chuyển đổi thành dạng chuỗi “Đối tượng”. Để xem chức năng get_class[] lớp của họ đã được sử dụng
Tất cả các loại khác sẽ không thể chuyển đổi thành chuỗi và rất tiếc là PHP không có phương thức trực tiếp như ToString[] trong. NET, Java hoặc Javascript
Nhưng thật may mắn cho chúng tôi, mọi thứ đã thay đổi với PHP 5, khi một hàm ma thuật mới __toString[]
được giới thiệu
Hàm ma thuật __toString[]
Là một ngôn ngữ được gõ lỏng lẻo, cùng một biến trong PHP có thể được gọi hoặc sử dụng dưới dạng số, đối tượng hoặc chuỗi. Bây giờ, phương thức __toString[]
có thể được gọi khi một đối tượng cần được xử lý như một chuỗi
Hàm ma thuật này không chấp nhận bất kỳ đối số nào với nó và trả về một giá trị chuỗi. Tất cả các hàm ma thuật trong PHP đều được dành riêng và chúng không thể được sử dụng cho bất kỳ mục đích nào khác. Ngoài ra, tất cả các chức năng bắt đầu bằng dấu gạch dưới kép [ __ ] được đặc biệt dành riêng cho Đối tượng
Ngoại lệ và lỗi với __toString[]
__toString[] phải luôn trả về một chuỗi, nếu không hàm sẽ báo lỗi nghiêm trọng. Ngoài ra, không có cách nào để đưa ra một ngoại lệ từ bên trong ____3 dẫn đến lỗi
🤩 Nhà tài trợ tuyệt vời của chúng tôi 👇
Đó là lý do tại sao cách tốt nhất là sử dụng mã try-catch bên trong hàm __toString[]
. Vì vậy, ngay cả khi một ngoại lệ được ném ra, nó vẫn có thể bị bắt
Sử dụng hàm ma thuật __toString[]
, giờ đây chúng ta có thể tạo một đối tượng lớp mới và khi chúng ta lặp lại một thể hiện của đối tượng đó, hàm ma thuật sẽ tự động được gọi như vậy
Tóm lại là
Thật dễ dàng để nói rằng __toString[] là một chức năng cực kỳ hữu ích trong PHP. Mặc dù các lỗi có thể là một chút vấn đề với nó, nhưng khi được thực thi với mã phù hợp, sẽ không có bất kỳ vấn đề nào cả