راکت
حل شده

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

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

ثبت پرسش جدید

پاسخ‌ها

12
امیر علی
امیر علی
@ajdar9667

تخصص: طراح و توسعه دهنده fullstack

بهترین پاسخ
<?php 
 global $t ; 
$t = [13] ; 
function aa(){

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

}
aa()
امیر علی
امیر علی
@ajdar9667

تخصص: طراح و توسعه دهنده fullstack

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

سعید محمدی
سعید محمدی
@saeiidm

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

شاید پاسخ شما همین‌جا باشد

محمد حسین
محمد حسین
@muhamad

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

سعید محمدی
سعید محمدی
@saeiidm

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

محمد حسین
محمد حسین
@muhamad

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

امیر علی
امیر علی
@ajdar9667

تخصص: طراح و توسعه دهنده fullstack

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

محمد حسین
محمد حسین
@muhamad
سعید محمدی
سعید محمدی
@saeiidm

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

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

$t = [13];

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

امیر علی
امیر علی
@ajdar9667

تخصص: طراح و توسعه دهنده fullstack

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

سعید محمدی
سعید محمدی
@saeiidm

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

امیر علی
امیر علی
@ajdar9667

تخصص: طراح و توسعه دهنده fullstack

موفق باشید

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

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