"খালি" অবজেক্ট তৈরি করার মানক উপায় হ'ল:
$oVal = new stdClass();
তবে, পিএইচপি> = 5.4 দিয়ে আমি ব্যক্তিগতভাবে ব্যবহার করতে পছন্দ করি :
$oVal = (object)[];
এটি সংক্ষিপ্ত এবং আমি ব্যক্তিগতভাবে এটিকে আরও স্পষ্ট মনে করি কারণ স্টাডক্লাস নবীন প্রোগ্রামারদের জন্য বিভ্রান্তিকর হতে পারে (যেমন "আরে, আমি কোনও শ্রেণি নয়, একটি জিনিস চাই!" ...)।
পিএইচপি <5.4 এর সাথে একই:
$oVal = (object) array();
(object)[]
সমতূল্য new stdClass()
।
পিএইচপি ম্যানুয়ালটি দেখুন ( এখানে ):
stdClass : বস্তুতে টাইপকাস্ট করে তৈরি করা হয়েছে।
এবং ( এখানে ):
যদি কোনও অবজেক্টকে কোনও বস্তুতে রূপান্তর করা হয় তবে এটি সংশোধিত হয় না। যদি অন্য যে কোনও ধরণের মান কোনও বস্তুতে রূপান্তরিত হয়, তবে stdClass অন্তর্নির্মিত শ্রেণির একটি নতুন উদাহরণ তৈরি হয় ।
তবে মনে রাখবেন যে খালি (V oval) মিথ্যা প্রত্যাবর্তন করবে , যেমন @ পলপ বলেছেন:
কোনও সম্পত্তি সহ অবজেক্টগুলিকে আর খালি বিবেচনা করা হবে না।
আপনার উদাহরণ সম্পর্কে, আপনি যদি লিখেন:
$oVal = new stdClass();
$oVal->key1->var1 = "something"; // PHP creates a Warning here
$oVal->key1->var2 = "something else";
পিএইচপি নীচের সতর্কতা তৈরি করে, স্পষ্টতই সম্পত্তি তৈরি করে key1
(একটি বস্তু নিজেই)
সতর্কতা: খালি মান থেকে ডিফল্ট অবজেক্ট তৈরি করা
যদি আপনার কনফিগারেশন ( ত্রুটি প্রতিবেদন করার স্তরটি দেখুন ) ব্রাউজারটিতে এই সতর্কতাটি দেখায় তবে এটি কোনও সমস্যা হতে পারে । এটি অন্য একটি সম্পূর্ণ বিষয়, তবে তাত্ক্ষণিকভাবে অগ্রাহ্য করার জন্য ত্রুটি নিয়ন্ত্রণ অপারেটর (@) ব্যবহার করার জন্য একটি দ্রুত এবং নোংরা পদ্ধতির ব্যবহার করা যেতে পারে :
$oVal = new stdClass();
@$oVal->key1->var1 = "something"; // the warning is ignored thanks to @
$oVal->key1->var2 = "something else";
$var = (object) (boolean) (string) (int) (array) new StdClass;
আপনি জানেন, কেবল নিরাপদ থাকতে হবে।