1masoud
6 سال پیش توسط 1masoud مطرح شد
12 پاسخ

سوال در مورد توابع در لاراول

من دو تابع دارم می خواهم از متغییر cدر فانکشن a استفاده کنم چیکار بکنم چطوری به c دسترسی داشته باشم

public function b(){
    $c="ali";  }
public function a(){ }

اگر دو جای فانکشن دو کلاس باشد انوقت چطوری دسترسی داشته باشیم


ثبت پرسش جدید
1masoud
تخصص : php,laravel
@masoudproton 6 سال پیش مطرح شد
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
0

میشه متغییر C رو در تابع ‌B برگردوند و در تابع A استفاده کرد.
اما در مورد کلاس ها:
میشه از وراثت و همچنین از Decoration ها استفاده کرد.


1masoud
تخصص : php,laravel
@masoudproton 6 سال پیش مطرح شد
0

@ali.bayat
علی آقا میشه مثال بزنید


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 6 سال پیش آپدیت شد
0

مثال سادش اینطوریه :
‍‍‍‍‍‍```
class Foo {
$bar = "myFoo";

public function echoMyBar () {
echo $this->bar; // myFoo
}
}


1masoud
تخصص : php,laravel
@masoudproton 6 سال پیش مطرح شد
0

@mohsenbostan

اینو که میدونم در منظورم اینجوریه الان در کلاس foo1 چطوری $bar رو فراخوانی کنیم

class Foo {
$bar = "myFoo";
public function echoMyBar () {
echo $this->bar; // myFoo
}
class foo1{ 
}

اگه به جای کلاس فانکشن بود چطوری فراخوانی کنیم


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 6 سال پیش مطرح شد
0

@masoudproton

<?php
class Foo {
public $bar = "myFoo";
public function echoMyBar () {
echo $this->bar; // myFoo
}
}
class foo1 extends Foo{ 
    public function bar() {
        return $this->bar;
    }
}

1masoud
تخصص : php,laravel
@masoudproton 6 سال پیش مطرح شد
0

@mohsenbostan

ممنون
در php چطوریه؟


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 6 سال پیش مطرح شد
0

@masoudproton
این php دیگه :/


1masoud
تخصص : php,laravel
@masoudproton 6 سال پیش مطرح شد
0

@mohsenbostan
این لاراول در php تابع رو با public تعریف نمیکنند


مهدی
@code2code 6 سال پیش آپدیت شد
0

@masoudproton
لاروال هم یه فریمورک php دیگه
از نوع شی گرا
میشه public نذاشت خودش public میگیره فرقی نمیکنه...
https://www.tutorialspoint.com/php/php_object_oriented.htm


1masoud
تخصص : php,laravel
@masoudproton 6 سال پیش مطرح شد
0

@code2code
@mohsenbostan
من می خوام الان متغییر d رو در label2فراخوانی کنم چطوری میشه؟

public function label(){
        $d="ali";
    }
    public function label2(){
    }

علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
0

@masoudproton

شما به متغیرهای درون توابع که نمیتونی دسترسی داشته باشی. هر متغیر در اسکوپ همون تابع موجود و قابل دسترسیه.

اما با استفاده از شئ‌گرایی٬ میتونی به پراپرتی‌های درون کلاس دسترسی داشته باشی.
شبیه کد زیر:

<?php

class myClass {
    public $d;

    public function __construct(){
        $this->d = "ali";
    }

    public function label2(){
        echo $this->d;
    }

}

(new myClass)->label2();

?>

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

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