За последние 24 часа нас посетили 8217 программистов и 668 роботов. Сейчас ищут 190 программистов ...

ООП PHP

Тема в разделе "PHP для новичков", создана пользователем Алексей345, 8 окт 2019.

Метки:
  1. Алексей345

    Алексей345 Новичок

    С нами с:
    8 окт 2019
    Сообщения:
    1
    Симпатии:
    0
    Два класса , в каждом по методу. Как из метода в классе B получить значение переменной $str класса А (на Symfony)

    class A {
    public function a {
    $str = 'str';
    }
    }

    class B {
    public function b {
    $str = ?????????????
    }
    }
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    6.997
    Симпатии:
    1.329
    Ну так как вы показали, $str - локальная переменная метода a в классе A (хотя код вообще работать не будет, потому что синтаксические ошибки). А локальные переменные извне получить невозможно, они доступны только внутри функции. Рано вам в Symfony с такими вопросами
     
    webog нравится это.
  3. kazadai90

    kazadai90 Активный пользователь

    С нами с:
    6 фев 2013
    Сообщения:
    97
    Симпатии:
    17
    если только дописать код

    Код (Text):
    1. <?php
    2.  
    3. class A
    4. {
    5.     private $str;
    6.    
    7.     public function a()
    8.     {
    9.         $this->str = 'str';
    10.     }
    11.    
    12.     public function getStr()
    13.     {
    14.         return $this->str;
    15.     }
    16.    
    17. }
    18.  
    19. class B
    20. {
    21.     private $a;
    22.    
    23.     public function __construct(A $a)
    24.     {
    25.         $this->a = $a;
    26.     }
    27.    
    28.     public function b()
    29.     {
    30.         return $this->a->getStr();
    31.     }
    32. }
    33.  
    34. $a = new A();
    35. $b = new B($a);
    36. echo $b->b();
     
  4. Roman __construct

    Roman __construct Новичок

    С нами с:
    27 апр 2019
    Сообщения:
    424
    Симпатии:
    27
    А в Симфони тоже иньекции как в Laravel есть? (я просто не в курсе)))
     
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    6.997
    Симпатии:
    1.329
    @Roman __construct, а причём тут инъекции как в Laravel, если @kazadai90 напрямую передал в конструктор B объект класса $a?
     
  6. Roman __construct

    Roman __construct Новичок

    С нами с:
    27 апр 2019
    Сообщения:
    424
    Симпатии:
    27
    ага, вижу, до этой части кода я не прокрутил вниз)))