روز برنامه‌نویس مبارک 🤩🎉 از هدایای روز برنامه‌نویس جا نمونی ⌛
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ مهدی
تبدیل مستقیم آرایه به آبجکت
جامعه پی اچ پی ایجاد شده در ۰۵ بهمن ۱۴۰۰

$users = array(

    1 => [

        "name"=>"erfan",

        "email"=>"erfan@gmail.com",

        "username"=>"erfan781"

    ],

    2 => [

        "name"=>"ali",

        "email"=>"ali@yahoo.com",

        "username"=>"ali110"

    ],

    3 => [

        "name"=>"maryam",

        "email"=>"maryam@yahoo.com",

        "username"=>"maryamdev"

    ]

);

$y = (object) $users;

echo $y->{2}->name;

سلام دلیل ارور زیر در اجرای کد بالا جیه؟

Notice: Trying to get property 'name' of non-object in C:\\xampp\\htdocs\\1.php-expert-basic\\test\\index.php on line 20

fa88-Untitled.pngاینم اسکرین

مهدی ۰۵ بهمن ۱۴۰۰، ۱۴:۴۲

سلام مهدی جان

شما آرایه ای که انتخاب کردید به صورت یک آرایه دو بعدی هستش زمانی که عمل کست رو انجام میدید فقط بعد اول کست میشه و به یک ابجکت تغییر میکنه و از اونجایی هم که آرایه شما به صورت index هستش با ارور مواجه میشد چون تبق قوانین سیتکسی PHP نیابد یک متغیر و یا یک نام با عدد شروع شود .

در نظر داشته باشید که برای کست کردن و این که به مشکل نخورید باید آرای به صورت انجمنی یا اسوسیتیو باشه.

در نتیجه به این روش‌ها میتونید .

$users array(
    'user_1' => [
        "name"=>"erfan",
        "email"=>"erfan@gmail.com",
        "username"=>"erfan781"
    ],
   'user_2' => [
        "name"=>"ali",
        "email"=>"ali@yahoo.com",
        "username"=>"ali110"
    ],
    'user_3' => [
        "name"=>"maryam",
        "email"=>"maryam@yahoo.com",
        "username"=>"maryamdev"
    ]
);
$y = (object$users;
echo $y->user_1['name'];

ویا به روش زیر عمل کنید :

$users array(
    'user_1' => [
        "name"=>"erfan",
        "email"=>"erfan@gmail.com",
        "username"=>"erfan781"
    ],
   'user_2' => [
        "name"=>"ali",
        "email"=>"ali@yahoo.com",
        "username"=>"ali110"
    ],
    'user_3' => [
        "name"=>"maryam",
        "email"=>"maryam@yahoo.com",
        "username"=>"maryamdev"
    ]
);
$y = json_encode($users);
$temp = json_decode($y);
var_dump($temp->user_3->name);
بهترین پاسخ
محمد نقلانی ۰۵ بهمن ۱۴۰۰، ۱۴:۵۲

آها مرسی

راستی چطور از کدتون عکس میفرسید؟


مهدی ۰۵ بهمن ۱۴۰۰، ۱۵:۲۲