دستور echo در تبدیل مستقیم ارایه به ابجکت وقتی اندیس ما عددی هست دچار خطا میشه علتش رو نمیدونم .
تبدیل مستقیم ارایه زدم به object زمانی که اندیس من رشته است کار میکنه دستور اکو ولی زمانی که اندیس عددی میدم خطا میده مثل همونی که در تبدیل غیر مستقیم گفتید .
سلام
موقعی ای که از اندیس عددی هم استفاده میکنید قبلش باید نام متغیر رو بیارید تویه عکسی که ضمیمه کردی اسم متغیر رو قبل اندیس نیاوردی
$x = array(array('name'=>'Ali'));
echo $x[0]['name'];
اول اینو بگم که برای دسترسی به متغیرهای تعریف شده در یک ابجکت به صورت زیر عمل میشه که این بخش مربوط میشه به مبحث شی گرایی
$object->variable_name;
حالا درمورد سوال شما
$x = array('1'=>array('name'=>'Ali'),'2'=>array('name'=>'mobin'));
// array to json string
$json_string = json_encode($x);
// json string to object
$obj = json_decode($json_string);
echo $obj->{1}->name;
تویه خط آخر قسمت
obj -> {۱}$
خودش یک ابجکت برمیگدونه که برای دسترسی به متغیر
name
باید به صورتی که در خط آخر اوردم عمل شه
$x = array('1'=>array('name'=>'Ali'),'2'=>array('name'=>'mobin'));
$y = (object) $x;
echo $y->{1}['name'];
<?php
$a = array (
"1" => array (
"name" => array (
"firstname" => "ali",
"lastname" => "byat"
),
"username" => "ali110",
"email" => "[email protected]"
),
"user2" => array (
"name" => "erfan",
"username" => "erfan888",
"email" => "[email protected]"
)
);
$c = (object) $a;
echo "<pre>";
print_r($c);
echo "</pre><hr>";
echo $c->{1}["name"]["lastname"];
سلام و احترام
<?php
$a = array (
"1" => array (
"name" => array (
"firstname" => "ali",
"lastname" => "byat"
),
"username" => "ali110",
"email" => "[email protected]"
),
"user2" => array (
"name" => "erfan",
"username" => "erfan888",
"email" => "[email protected]"
)
);
$c = (object) $a;
echo $c->{1}["name"]["lastname"];
کد شما به درستی کار میکنه
با دستور php -v میتونید ببینید که ورژن php شما چنده، حتما آخرین نسخه xampp رو دانلود و نصب کنید https://www.apachefriends.org/download_success.html