View Full Version : مشکل در پاس دادن آرایه به یک تابع
HosseinProgrammer
چهارشنبه 06 بهمن 1389, 12:23 عصر
سلام دوستان.
من نمونه برنامه زیر رو بصورت ساده نوشتم براتون. در این برنامه خطای زیر گرفته میشه:
مشکل از کجاست ؟
<?php
class A
{
var $c;
}
$z = new A();
$z[0]->c = 2;
$z[1]->c = 3;
$z[2]->c = 4;
B($z);
function B($w)
{
echo $w[1]->c;
}
?>
پیغام خطا پس از اجرا:
Fatal error: Cannot use object of type A as array in C:\wamp\www\test\test.php on line 8
پیشاپیش از جوابتون متشکرم.
MMSHFE
چهارشنبه 06 بهمن 1389, 13:00 عصر
با سلام، دوست گرامي شما شئ رو بصورت متغير معمولي ايجاد كردين ولي بصورت آرايه ميخواين باهاش كار كنيد كه قطعاً نميشه. كد زير رو امتحان كنيد:
<?php
class A
{
var $c;
}
$z[0] = new A();
$z[1] = new A();
$z[2] = new A();
$z[0]->c = 2;
$z[1]->c = 3;
$z[2]->c = 4;
B($z);
function B($w)
{
echo $w[1]->c;
}
?>
اميدوارم مشكلتون برطرف بشه.
موفق و مؤيد باشيد.
HosseinProgrammer
چهارشنبه 06 بهمن 1389, 15:45 عصر
ممنون از توضیحتون. حق با شماست.
ولی یک مشکل دیگر دارم. (چون نمونه کد نوشته بودم و کد اصلیم نبود.)
وقتی کد زیر اجرا میشه، پیغام خطای زیر رو میده:
<?php
$i[0] = 4;
$i[1] = 5;
function A()
{
echo $GLOBALS["i[1]"];
}
A();
?>
خطا:
Notice: Undefined index: i[1] in C:\wamp\www\Fuzzy Logic\test.php on line 7
tbebest
چهارشنبه 06 بهمن 1389, 16:07 عصر
سلام, معمولا در ابتدا از set شدن مطمئن میشن بعد از اونه که بکارش میگیرن. بوسیله isset() و یا empty() چک کن ,بعد استفاده کن مثال:
if (isset($_POST['value'])) {
// do something with $_POST['value']
}
HosseinProgrammer
چهارشنبه 06 بهمن 1389, 16:15 عصر
سلام, معمولا در ابتدا از set شدن مطمئن میشن بعد از اونه که بکارش میگیرن. بوسیله isset() و یا empty() چک کن ,بعد استفاده کن مثال:
if (isset($_POST['value'])) {
// do something with $_POST['value']
}
ولی توی کد من معلومه که set شده! مگه نه؟
چون میدونم set شده ، حتما میخوام بکار بگیرمش.
ayub_coder
چهارشنبه 06 بهمن 1389, 16:27 عصر
طرز تعریف آرایه اشتباه است
اینطور اصلاح کنید
$z[] = new A();
HosseinProgrammer
چهارشنبه 06 بهمن 1389, 20:01 عصر
طرز تعریف آرایه اشتباه است
اینطور اصلاح کنید
$z[] = new A();
روش شما هم مانند روش آقای MMSHFE درست است.
با تشکر
HosseinProgrammer
چهارشنبه 06 بهمن 1389, 20:03 عصر
ممنون از توضیحتون. حق با شماست.
ولی یک مشکل دیگر دارم. (چون نمونه کد نوشته بودم و کد اصلیم نبود.)
وقتی کد زیر اجرا میشه، پیغام خطای زیر رو میده:
<?php
$i[0] = 4;
$i[1] = 5;
function A()
{
echo $GLOBALS["i[1]"];
}
A();
?>
خطا:
Notice: Undefined index: i[1] in C:\wamp\www\Fuzzy Logic\test.php on line 7
این مشکل رو کشف کردم!!!
روش درست:
<?php
$i[0] = 4;
$i[1] = 5;
function A()
{
echo $GLOBALS["i"][1];
}
A();
?>
HosseinProgrammer
چهارشنبه 06 بهمن 1389, 20:04 عصر
بنده پاسخم را از این تاپیک گرفتم. مطالب بیان شده مفید بود و مشکل من را حل کرد.
با تشکر از همه دوستان
ayub_coder
چهارشنبه 06 بهمن 1389, 21:40 عصر
کاش به جای نوشتن کلمه ی تشکر آن دکمه ی تشکر را میزدید. :لبخندساده: برای همین مواقع کاربرد دارد. :قلب:
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.