অ্যারে () এবং [] এর মধ্যে পিএইচপি পার্থক্য


148

আমি একটি পিএইচপি অ্যাপ লিখছি এবং আমি নিশ্চিত করতে চাই যে এটি কোনও ত্রুটি ছাড়াই কাজ করবে।

মূল কোড:

<?php
$data = array('name' => 'test',
              'id'   => 'theID');

echo form_input($data);
?>

নিম্নলিখিত কারণগুলিতে কোনও ত্রুটি ছাড়াই কাজ করবে বা কোনও কারণে প্রস্তাবিত নয়?

<?= form_input(['name' => 'test', 'id' => 'theID']); ?>

কোন পার্থক্য আছে?

আমি আবার তথ্য দেখেছি array() এবং []পিএইচপি নেটনে স্কোয়ার বন্ধনীগুলির সাথে সংক্ষিপ্ত অ্যারে পদ্ধতিটি দেখেছি তবে আমি নিশ্চিত নই।

এবং এছাড়াও, শর্ট পিএইচপি ট্যাগ <?= ?>প্রতিধ্বনির জন্য জরিমানা? কোন সংস্করণ সমস্যা আছে? (সরবরাহিত php.ini সক্ষম করা হয়)


1
সংক্ষিপ্ত অ্যারে সিনট্যাক্স পিএইচপি 5.4 তে প্রবর্তিত হয়েছিল, কোনও পার্থক্য নেই এবং পুরানো পদ্ধতিটি সরানো হবে না, সুতরাং এটি ব্যবহার করা নিরাপদ। সংক্ষিপ্ত ট্যাগগুলি সাধারণত ভাবা হয়, আমি সেগুলি ব্যবহার করব না।
জিমএল

2
Tks, পিএইচপি শর্ট ট্যাগ ব্যবহার না করার জন্য কোনও রেফারেন্স / কারণ?
মিঃ ওয়েব

7
যদিও <? =?> আসলে শর্টট্যাগ হিসাবে বিবেচিত হয় না, তারা স্ট্যান্ডার্ড শর্টট্যাগগুলি আফাইক দিয়ে অক্ষম করা হয় না যাতে তাদের সরল প্রতিধ্বনির জন্য ঠিক থাকতে হবে।
আলেকজান্ডার ভারভিজক


1
<? =?> ট্যাগগুলিতে পড়া আকর্ষণীয়। একটি মন্তব্য অনুসারে "রাসমুস লেয়ার্ডর্ফ নিজেই এটি খুব প্রতিশ্রুতিবদ্ধ করেছিলেন" প্রোগ্রামারস.স্ট্যাকেক্সেঞ্জার.কম
সেকশন

উত্তর:


223

নিম্নলিখিত []পিএইচপি> = 5.4 এ সমর্থিত:

['name' => 'test', 'id' => 'theID']

এটি কেবল একটি সংক্ষিপ্ত বাক্য গঠন এবং পিএইচপি <5.4 এ এটি কাজ করবে না


দেখে মনে হচ্ছে 5.3.24 এই বাক্য গঠনটিকেও সমর্থন করে। (সরাসরি নিশ্চিত করতে পারেনি)
আলবার্তো

3
তোমার কি কোন পার্থক্য আছে?
আলী আকবর আজিজি

26
@ কুপার, না আপনি টাইপিংয়ের দৈর্ঘ্য গণনা না করা পর্যন্ত না।
আলফা

7
আমি একটি রেফারেন্স চেয়েছিলাম এবং এটি পেয়েছিলাম - php.net/manual/en/language.tyype.array.php - "পিএইচপি 5.4 হিসাবে আপনি সংক্ষিপ্ত অ্যারে সিনট্যাক্সও ব্যবহার করতে পারেন, যা [] এর সাথে অ্যারে () এর পরিবর্তে"। "
mrwaim

1
@ প্রোফুট ৩৩, আপনি স্ট্যান্ডার্ড ক্লাস ব্যবহার $data = new stdClass();$data->someProp = 'someValue';করে PHPএবং $obj = (object) ['foo'=>'bar', 'baz'=>'biz'];একটি অ্যারে (স্পষ্ট ধরণের কাস্টিং ব্যবহার করে) কোনও অবজেক্টে (স্টাডক্লাস) রূপান্তর করতে পারেন তবে সম্পর্কিত {}, এটি ভবিষ্যতে বাস্তবায়িত হতে পারে তবে নিশ্চিত নয়:
আলফা

19

2019 হিসাবে []সিনট্যাক্স যুক্ত হওয়ার পরে 7 বছর হয়ে গেছে । array()আমার মতে এটি পুরানো উত্তরাধিকার প্রোগ্রামগুলি বাদ দিয়ে যথেষ্ট দীর্ঘ ।


3
@ আলফা ভাল, আজও, আমি পারফরম্যান্সের পার্থক্য ছিল কিনা তা জানতে আগ্রহী ছিলাম
সিড

আপনি কি পরিমাপ করেছেন? আমি ধরে নিলাম এগুলি কেবল বিকল্প বিন্যাস, যা পরিমাপযোগ্য হওয়া উচিত নয়।
ডেভিড স্পেক্টর

6

আপনি যদি 5.3 বা পূর্ববর্তী সংস্করণ ব্যবহার করে থাকেন তবে আপনি []অ্যারে হিসাবে পাশাপাশি সাহসী অ্যারে হিসাবে ব্যবহার করতে পারবেন না । আপনি যদি পিএইচপি এর 5.4 বা পরবর্তী সংস্করণ ব্যবহার করে থাকেন তবে আপনি হয় ব্যবহার করতে পারেন array()বা []একটি অ্যারে, সহযোগী অ্যারে বা এমনকি বহুমাত্রিক অ্যারে তৈরি করতে পারেন ।


1

এবং <?= ?>প্রশ্নের অংশটি সম্পর্কিত: এটি মূলত তেমন কিছু নয়, 2019 সালেও নয় 2019

  1. একটি ভাল প্রযুক্তিগত ব্রেকডাউন: /software/151661/is-it-bad-p ੈਕਟ- to-use-tag-in- php
  2. পিএসআর -১ এ একটি নোট : ফাইলগুলি কেবলমাত্র ট্যাগ এবং ট্যাগ ব্যবহার করতে হবে<?php<?=
  3. টিএল; ডিআর: আপনি এটি ব্যবহার করতে বা না ব্যবহার করার কোনও কারণ নেই।

-12

পিএইচপি 7.২ ব্যবহার করা আমার পক্ষে এটির পরিবর্তে মনে হয় [আমি একটি অ্যারে] {আমি একটি অ্যারে কাজ করছে বলে মনে হচ্ছে} পার্থক্য মধ্যে {}এবং []। আমার কোড

<p>
  <label for="post_category"> Cat 1 </label>
  <input type="checkbox" name="post_category{first}" value="cat1">
  <br />
  <label for="post_category{second}"> Cat 2 </label>
  <input type="checkbox" name="post_category" value="cat2">
</p>

15
পিএইচপি কোথায়? আপনি এইচটিএমএল লিখছেন।
ডোমডামব্রোগিয়া

1
এছাড়াও, কোঁকড়ানো ধনুর্বন্ধনী ধনুর্বন্ধনী OP আপনি কোঁকড়ানো ধনুর্বন্ধনী সহ একটি অ্যারে তৈরি করতে পারবেন না, কেবল অ্যারে উপাদানগুলি অ্যাক্সেস করুন (v5.4 থেকে এখন অবধি - v7.3)।
আয়দ্দিন 4
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.