Hướng dẫn what is difference between array and object in php? - sự khác biệt giữa mảng và đối tượng trong php là gì?

Đây có lẽ được coi là một câu hỏi thực sự ngớ ngẩn, nhưng tôi đang trong quá trình kết hợp một hệ thống mẫu đơn giản cho một trang web và đang cố gắng theo dõi việc sử dụng biến của tôi và giữ mọi thứ gọn gàng và gọn gàng.

Bạn có thể cho tôi biết nếu có bất kỳ lợi thế/bất lợi nào đối với các phương pháp sau:

đơn giản var:

$tpl_title = 'my title'
$tpl_desc = 'my text'

array:

$tpl['title'] = 'my title'
$tpl['desc'] = 'my text'

Object:

$tpl->title = 'my title'
$tpl->desc = 'my text'

Tôi thích phương thức đối tượng tốt nhất vì nó trông sạch sẽ khi Echo'd trong HTML trái ngược với mảng và afaik nó có thể được sử dụng theo cách giống như mảng? Tuy nhiên, điều tôi muốn biết là liệu việc sử dụng các đối tượng theo cách này có được coi là thực hành xấu hay giới thiệu các chi phí không cần thiết?

George

Huy hiệu vàng 36K864 Huy hiệu bạc8 gold badges64 silver badges101 bronze badges

Đã hỏi ngày 20 tháng 3 năm 2013 lúc 10:52Mar 20, 2013 at 10:52

3

Trong các kịch bản lý tưởng, mọi biến nên thuộc về một đối tượng, ngoài các biến cục bộ cho các phương thức cho mục đích tạm thời. Tuy nhiên, chúng ta không sống trong một thế giới lý tưởng và đặc biệt là các ngôn ngữ lập trình của chúng ta là xa nó. Dựa trên tình hình là gì, hãy chọn cách tốt nhất để đi về nó để làm cho cuộc sống của bạn dễ dàng hơn. Nếu bạn đang sử dụng mọi thứ cho các mẫu, nói chung, bạn giữ tất cả dữ liệu trong một mảng và extract Mảng để có được các biến độc lập.

Vì vậy, yeah, phương pháp đối tượng là tốt nhất, cố gắng làm cho nó xảy ra nhiều nhất có thể mà không dành thời gian điên rồ để làm điều đó.

Ngoài ra nếu bạn yêu thích các đối tượng và muốn có cách làm -> gọn gàng, bạn có thể làm

$object = [object]$array;

Điều đó sẽ chuyển đổi mảng của bạn thành một đối tượng.

Hy vọng điều đó sẽ giúp.

Đã trả lời ngày 20 tháng 3 năm 2013 lúc 11:03Mar 20, 2013 at 11:03

Sabeen Maliksabeen MalikSabeen Malik

10,8K4 Huy hiệu vàng33 Huy hiệu bạc 50 Huy hiệu Đồng4 gold badges33 silver badges50 bronze badges

Tôi sẽ coi đó là chi phí không cần thiết. Làm những gì bạn đang nói theo cách hướng đối tượng chỉ có nghĩa là bên trong lớp của bạn, bạn sẽ không làm gì khác hơn là tạo ra một loạt các biến, giống như bạn đã chỉ định trong ví dụ đầu tiên của bạn.

Mảng là cách tốt nhất để đi theo quan điểm của tôi. Bạn chỉ sử dụng một biến và bạn cũng có thể tích hợp nó vào lớp của mình. Vì vậy, thay vì $tpl->title, bạn có thể có

$tpl['title'] = 'my title'
$tpl['desc'] = 'my text'
0.

người đàn ông thiếc

156K41 Huy hiệu vàng209 Huy hiệu bạc298 Huy hiệu Đồng41 gold badges209 silver badges298 bronze badges

Đã trả lời ngày 20 tháng 3 năm 2013 lúc 10:57Mar 20, 2013 at 10:57

DockeryzdockeryzdockeryZ

Phù hiệu vàng 3.9531 Huy hiệu bạc28 Huy hiệu đồng1 gold badge19 silver badges28 bronze badges

3

Mảng

Tôi sẽ đề xuất trên phần phụ trợ, giữ mọi thứ được lưu trữ trong một mảng. Điều này cho phép bạn chỉ có một biến để theo dõi và một khi bạn chuyển nó đến mặt trận, bạn có thể

$tpl['title'] = 'my title'
$tpl['desc'] = 'my text'
1 mảng, để chuyển đổi chúng thành các biến đơn giản.

Cú pháp

Sử dụng

$tpl['title'] = 'my title'
$tpl['desc'] = 'my text'
1 đơn giản hóa cú pháp trên mặt trận, điều đó có nghĩa là bạn sẽ chỉ luôn có các biến số $ trong mẫu.

Về phần phụ trợ, bạn sẽ đặt

$tpl['title'] = 'my title'
$tpl['desc'] = 'my text'
3
$tpl['title'] = 'my title'
$tpl['desc'] = 'my text'
3

Mà một khi được trích xuất trong mẫu là

$tpl['title'] = 'my title'
$tpl['desc'] = 'my text'
4
$tpl['title'] = 'my title'
$tpl['desc'] = 'my text'
4

Ví dụ về hàm phụ trợ

 protected function fetch[$template, $data = null]
    {
        if [!$this->isTemplate[$template]] {
            throw new Exception["Template file $this->_templatePath$template not found"];
        }
        ob_start[];
        if [is_array[$data]] {
            extract[$data, EXTR_SKIP];
        }
        require $this->_templatePath . $template . EXT;
        return ob_get_clean[];
    }

Đã trả lời ngày 20 tháng 3 năm 2013 lúc 10:58Mar 20, 2013 at 10:58

KaokaKao

2.2223 huy hiệu vàng22 Huy hiệu bạc31 Huy hiệu đồng3 gold badges22 silver badges31 bronze badges

Cuối cùng, chúng giống nhau, nó phụ thuộc vào sở thích, mặc dù tôi sẽ sử dụng các mảng hoặc đối tượng vì bạn có thể nhóm các biến trong đó, vì vậy bạn có những thứ được sắp xếp tốt hơn.

Mặc dù phương pháp đối tượng hoạt động, tôi nghĩ rằng nó không phải là mục đích sử dụng tự nhiên cho nó.

Vì vậy, tôi sẽ nói mảng!

Ngoài ra, có hàng tấn hàm gốc PHP bạn có thể sử dụng với các mảng, như

$tpl['title'] = 'my title'
$tpl['desc'] = 'my text'
5 hoặc
$tpl['title'] = 'my title'
$tpl['desc'] = 'my text'
6 Sắp xếp mảng và vv ...

Đã trả lời ngày 20 tháng 3 năm 2013 lúc 10:59Mar 20, 2013 at 10:59

Centernationalationaleation

4.7461 Huy hiệu vàng20 Huy hiệu bạc35 Huy hiệu Đồng1 gold badge20 silver badges35 bronze badges

Theo tôi, cách sạch nhất để thiết lập nó là trong mảng như thế này:

$tpl = array [
  'title' => 'my title',
  'desc' => 'my text'
];

Bạn cũng có thể kết hợp nó với câu trả lời của Zane.

Tất cả tốt nhất!

Đã trả lời ngày 20 tháng 3 năm 2013 lúc 11:04Mar 20, 2013 at 11:04

GorangoranGoran

3.1472 Huy hiệu vàng29 Huy hiệu bạc31 Huy hiệu Đồng2 gold badges29 silver badges31 bronze badges

$tpl = array [
  'title' => 'my title',
  'desc' => 'my text'
];

Giống như Goran đã nói, với phần thưởng mà bạn có thể lưu trữ các mảng này trong một tệp INI sau đó và trích xuất chúng khi cần thiết với parse_ini_file

Có thể quan trọng nếu bạn muốn cho phép người dùng ghi vào tệp INI của riêng họ.

Đã trả lời ngày 20 tháng 3 năm 2013 lúc 11:56Mar 20, 2013 at 11:56

CupscupCups

6,8413 Huy hiệu vàng26 Huy hiệu bạc 30 Huy hiệu Đồng3 gold badges26 silver badges30 bronze badges

Mảng và đối tượng rất hữu ích trong trường hợp nếu bạn muốn đặt lại phần lớn dữ liệu biến sau khi sử dụng.

Bạn chỉ có thể giải nén mảng hoặc phá hủy đối tượng thay vì không đặt ra phạm vi biến sử dụng trong mã.

Khác với các mảng và đối tượng này có nhiều đối xứng về mã và giải thích hơn các biến bình thường

Đã trả lời ngày 27 tháng 12 năm 2013 lúc 6:14Dec 27, 2013 at 6:14

Hasan Baighasan BaigHasan Baig

4916 Huy hiệu bạc17 Huy hiệu đồng6 silver badges17 bronze badges

Điều gì là khác nhau giữa mảng và đối tượng trong PHP?

Một đối tượng là một thể hiện của một lớp. Nó chỉ đơn giản là một mẫu vật của một lớp và có bộ nhớ được phân bổ. Mảng là cấu trúc dữ liệu lưu trữ một hoặc nhiều loại giá trị tương tự trong một tên duy nhất nhưng mảng kết hợp khác với một mảng PHP đơn giản. Một mảng chứa chỉ mục chuỗi được gọi là mảng kết hợp.

Sự khác biệt giữa mảng và đối tượng là gì?

Trong bài viết này, chúng ta sẽ thấy sự khác biệt giữa mảng và mảng các đối tượng trong JavaScript.... JavaScript ..

Mảng các đối tượng trong PHP là gì?

Hãy giải thích một đối tượng và mảng kết hợp trong PHP là gì?Một đối tượng là một thể hiện của một lớp có nghĩa là từ một lớp, bạn có thể tạo nhiều đối tượng.Nó chỉ đơn giản là một mẫu vật của một lớp và có bộ nhớ được phân bổ.Mặt khác, một mảng bao gồm chuỗi dưới dạng một chỉ mục được gọi là mảng kết hợp.an array which consists of string as an index is called associative array.

Đối tượng trong PHP là gì?

Một đối tượng là một thể hiện riêng lẻ của cấu trúc dữ liệu được xác định bởi một lớp.Chúng tôi xác định một lớp một lần và sau đó tạo ra nhiều đối tượng thuộc về nó.Đối tượng còn được gọi là trường hợp.an individual instance of the data structure defined by a class. We define a class once and then make many objects that belong to it. Objects are also known as instances.

Bài Viết Liên Quan

Chủ Đề