سعید محمدی
3 سال پیش توسط سعید محمدی مطرح شد
12 پاسخ

باگ لاراول در متغیر سراسری و کار نکردنش داخل تابع

سلام دوستان
من تو فایل helpers.php یه متغیر عمومی دارم و یا تابع که داخل تابع اون متغیر رو استفاده کردم ولی تو لارول درست کار نمیکنه در حالی که تو فایل php معمولی به خوبی کار میکنه
این کد من هست :

$t = [13];
function subtraction()
{
    global $t;
    $t[] = 14;
    var_dump($t,gettype($t));
} 
subtraction();

خروجی کد در سایت https://implode.io به تنظیمی که لاراول رو انتخاب کردم به عنوان اجرا کننده بصورت زیر هست :

array(2) {
  [0]=>  int(13)
  [1]=>  int(14)
}
string(5) "array"

در حالی که همین کد در فریم ورک لاراول خودم کار نمیکنه و $t رو به عنوان گلوبال نمیشناسه و بصورت لوکال کار میکنه و خروجیش این میشه

array:1 [
  0 => 14
]
"array"

واقعا متوجه نمیشم چرا متغیر Global در فریمورک لارول من کار نمیکنه

@Alimotreb
@farhadi
@mehranmarandi90
@mhyeganeh
@mhyeganeh
@mobinasattari7
@ali.bayat
@hesammousavi


ثبت پرسش جدید
امیر علی
تخصص : طراح و توسعه دهنده fullstack
@ajdar9667 3 سال پیش آپدیت شد
2
<?php 
 global $t ; 
$t = [13] ; 
function aa(){

    array_push( $GLOBALS['t'] , 14)  ; 
    var_dump($GLOBALS['t']) ;

}
aa()

امیر علی
تخصص : طراح و توسعه دهنده fullstack
@ajdar9667 3 سال پیش مطرح شد
0

عزیزم اونجا که متغیر رو گلوبال کردی بیرون از تابع بنویس و در خط بعد اینکه اون رو برابر باارایه شمال۱۳ گذاشتی


سعید محمدی
@saeiidm 3 سال پیش مطرح شد
-2

@ajdar9667
عزیزم ممنون از جوابت نمیدونم شوخی میکنی یا نه چون اصول تعریف متغیر گلوبال اینه که متغیری که بیرون تابع هست رو با دستور
global $var; میتونی داخل تابع استفاده کنی و اینکه ممنون میشم در مورد توضیحی که میدین اول ببینید که اجرا میشه یا نه بعد نظر ثبت کنید🙁


محمد حسین
@muhamad 3 سال پیش مطرح شد
0

سلام
منظورتان از لاراول فریم ورک php هست؟


سعید محمدی
@saeiidm 3 سال پیش مطرح شد
-2

@muhamad
سلام
مگه بجز لاراول که فریم ورک php هست تو این بخش که سوال مطرح کردم چیز دیگه ای منظورم هست به نظرتون؟!!!!!!!!!!!


محمد حسین
@muhamad 3 سال پیش مطرح شد
0

@saeiidm
خیر . برام شبه ایجاد شده بود.
در این زمینه تخصص ندارم و فقط می توانم یک از دوستان را تگ کنم :)
@Alimotreb


امیر علی
تخصص : طراح و توسعه دهنده fullstack
@ajdar9667 3 سال پیش مطرح شد
2

جناب من شوخی ندارم شما دارین اشتباه میکنین وقتی متغیر داخل تابع میاد از قبل چیزی نداره و نال هستش چون برای اولین بار برای تابع تعریف شده و بعد شما اونو گلوبال کردین !


محمد حسین
@muhamad 3 سال پیش مطرح شد
سعید محمدی
@saeiidm 3 سال پیش آپدیت شد
1

دوست عزیز و بزرگوار @muhamad

لطفا سوالمو خوب بخونید و بعد جواب های ساده بدید
تابع به درستی در php معمولی کار میکنه ولی در فریم ورک لاراول کار نمیکنه و دلیلشم نمیدونم چرا
اینجا قبلا از اینکه تئوری پاسخ بدن جواب خودشون رو یه چک نمیکنند
این نمونه کد های شما تو اینترنت زیاد هست و مربوط به php معمولی هست که منم تو اون قسمت مشکلی ندارم !
و قبلا همه ی اینها رو دیدم و متغیر بنده هم بیرون تابع نه نال هست نه تعریف نشده البته اگه به

$t = [13];

در ابتدای کد و بیرون تابع دقت کنید!!!!!!
پس متغیر مربوطه داخل تابع از قبل چیزی دااارد و نال هم نیستش!!!!


امیر علی
تخصص : طراح و توسعه دهنده fullstack
@ajdar9667 3 سال پیش مطرح شد
0

اقای عزیز چرا تست نمی کنی خودت داخل تابعی که نوشتی بعد از خطی که متغیر t رو گلوبال کردی یک dd بگیر مقدار نال رو میده


امیر علی
تخصص : طراح و توسعه دهنده fullstack
@ajdar9667 3 سال پیش آپدیت شد
2
<?php 
 global $t ; 
$t = [13] ; 
function aa(){

    array_push( $GLOBALS['t'] , 14)  ; 
    var_dump($GLOBALS['t']) ;

}
aa()

سعید محمدی
@saeiidm 3 سال پیش مطرح شد
0

@ajdar9667 ممنون کار کرد


امیر علی
تخصص : طراح و توسعه دهنده fullstack
@ajdar9667 3 سال پیش مطرح شد
2

موفق باشید


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام