🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۶ Mehrjoo
دستور echo در تبدیل مستقیم ارایه به ابجکت وقتی اندیس عددی باشه (یکی از دوستان سوال پرسیدند ولی مشکل من توی جواب نبود)
جامعه پی اچ پی ایجاد شده در ۱۳ فروردین ۱۴۰۰

دستور echo در تبدیل مستقیم ارایه به ابجکت وقتی اندیس ما عددی هست دچار خطا میشه علتش رو نمیدونم .

 تبدیل مستقیم ارایه زدم به object زمانی که اندیس من رشته است کار میکنه دستور اکو ولی زمانی که اندیس عددی میدم خطا میده مثل همونی که در تبدیل غیر مستقیم گفتید .

سلام و احترام

لطفا خود کد رو قرار بدید و ورژن php شما چنده؟

امیر صالحی ۱۴ فروردین ۱۴۰۰، ۱۶:۱۴

سلام 

 

موقعی ای که از اندیس عددی هم استفاده میکنید قبلش باید نام متغیر رو بیارید تویه عکسی که ضمیمه کردی اسم متغیر رو قبل اندیس نیاوردی

$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" => "ali@gmail.com"
   ),
   "user2" => array (
       "name" => "erfan",
       "username" => "erfan888",
       "email" => "erfan@yahoo.com"
   )
);
$c = (object) $a;
echo "<pre>";
print_r($c);
echo "</pre><hr>";
echo $c->{1}["name"]["lastname"];
Mehrjoo ۱۵ فروردین ۱۴۰۰، ۱۵:۰۶

سلام و احترام

<?php
$a = array (
   "1" => array (
       "name" => array (
           "firstname" => "ali",
           "lastname" => "byat"
       ),
       "username" => "ali110",
       "email" => "ali@gmail.com"
   ),
   "user2" => array (
       "name" => "erfan",
       "username" => "erfan888",
       "email" => "erfan@yahoo.com"
   )
);
$c = (object) $a;
echo $c->{1}["name"]["lastname"];

کد شما به درستی کار میکنه

با دستور php -v میتونید ببینید که ورژن php شما چنده، حتما آخرین نسخه xampp رو دانلود و نصب کنید https://www.apachefriends.org/download_success.html

 

امیر صالحی ۱۵ فروردین ۱۴۰۰، ۱۶:۴۰