TLDR:
$date1 = new DateTime();
$date2 = (clone $date1)->modify('+3 years');
(অগভীর অনুলিপি হ'ল - অনুলিপি অনুলিপি তারিখটাইম (বর্তমানে) কোনও বুদ্ধি নেই )
যে হিসাবে সহজ :)
ব্যাখ্যা "পিএইচপি অন্য একটি ডেটটাইম থেকে ডেটটাইম অবজেক্ট তৈরি করে":
cloneশব্দ নিয়মিত তোলে অগভীর (কেন => নিচে দেখুন) এই ক্ষেত্রে জন্য enaugh - কপি
- এটি দিয়ে মোড়ানো
()নতুন সৃজিত বস্তু দ্বারা প্রকাশিত অভিব্যক্তিটিকে মূল্যায়ন করেclone
->modify() সুতরাং বলা হয় এবং নতুন অবজেক্টটি সংশোধন করে
DateTime::modify(...) দস্তাবেজ:
পদ্ধতিতে শৃঙ্খলাবদ্ধতার জন্য বা ব্যর্থতায় মিথ্যা বলার জন্য ডেটটাইম অবজেক্টটি দেয়।
$date2 এখন সদ্য নির্মিত এবং পরিবর্তিত ক্লোন / অনুলিপি সহ রয়েছে while $date1 অপরিবর্তিত রয়েছে
আপনার দরকার নেই কেন গভীর অনুলিপি নেই:
গভীর অনুলিপি / ক্লোন কেবল তখনই প্রয়োজনীয়, যখন আপনাকে সেই বৈশিষ্ট্যগুলির লক্ষ্যগুলি রেফারেন্স করতে হবে তবে এটি:
class TestDateTime extends DateTime{
public function test(){
//*this* way also outputs private variables if any...
var_dump( get_object_vars($this) );
}
}
$test = (new TestDateTime())->test();
আউটপুট:
array(3) {
["date"]=>
string(26) "2019-08-21 11:38:48.760390"
["timezone_type"]=>
int(3)
["timezone"]=>
string(3) "UTC"
}
সুতরাং কোনও রেফারেন্স নেই, কেবল সাধারণ প্রকার => গভীর অনুলিপি করার দরকার নেই ।