راکت

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

12 پاسخ

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

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

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

1masoud
1masoud
@masoudproton
ثبت پرسش جدید

پاسخ‌ها

12
1masoud
1masoud
@masoudproton

تخصص: php,laravel

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

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

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

1masoud
1masoud
@masoudproton

تخصص: php,laravel

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

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

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

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

1masoud
1masoud
@masoudproton

تخصص: php,laravel

@mohsenbostan

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

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

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

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@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
1masoud
@masoudproton

تخصص: php,laravel

@mohsenbostan

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

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

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

1masoud
1masoud
@masoudproton

تخصص: php,laravel

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

مهدی
مهدی
@code2code

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

1masoud
1masoud
@masoudproton

تخصص: php,laravel

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

public function label(){
        $d="ali";
    }
    public function label2(){
    }
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

@masoudproton

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

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

<?php

class myClass {
    public $d;

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

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

}

(new myClass)->label2();

?>

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

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