Взимане на променлива от метод

pro12

Registered
От скоро уча oop и има въпрос. Това ми е кода на един пробен клас.
PHP:
class Pro {
     public $te;
     

    public function a(){
        $this->te ='ffffffff';
         
    }
    public function s(){
        echo $this->te;
        
    }
}

$r = new Pro();
  $r->s();

От метод а искам да подавам стойност на $te и от метод s да извеждам стойностна от $te. Но както съм написал кода не извежда нищо.
 
Няма как, понеже обектите не се изпълняват процедурно.

Трябва да извикаш първо метод a(), за да присвоиш стойността на пропъртито и чак след това трябва да извикаш метод s().

Като изучаваш ООП, за начало, е хубаво да се запознаеш с основните принципи.

- Капсулиране (Encapsulation)
- Наследяване (Inheritance)
- Полиморфизъм (Polymorphism)
- Абстракция (Abstraction)

Старай се да ги спазваш, като имай предвид, че не винаги четирите могат да се използват заедно.

Като например, за начало е много важно да използваш капсулация. Т.е. всички пропъртита трябва да са ти с private scope. Не трябва да се позволява външно да се достъпват пропъртита. За да се достъпят пропъртита, в случая се правят сетър и гетъри(Setters and Getters).


Избягвай да използваш echo в методите. Даже е забранено. Винаги използвай return, като трябва да имаш предвид, че return спира изпълнението на метода. Какво имам предвид:

PHP:
class A {
      public function someMethod() {
             for ( $i = 0; $i < 10; $i++){
                      return $i;
              }
      }
}

echo new A()->someMethod(); // result: 0

Цикъла ще се изпълни само веднъж и ще върне 0. Това трябва да го имаш предвид.

Когато искаш да изведеш резултата от метода, го правиш външно.
В твоя случай, кода трябва да изглежда така:

PHP:
class Pro {

    private $text;

    public function setText($text){
        $this->text = $text;
    }

    public function getText(){
    	return $this->text;
    }
}



$proObject = new Pro();
$proObject->setText("Някакъв текст");

echo $proObject->getText(); // result: Някакъв текст

Като цяло иска някои разбирания ООП, но в момента не мога да ти обясня от-до нещата. Просто гледай да учиш от правилното място, защото много хора си мислят, че могат да пишат обектно-ориентирано, а всъщност не е така.
 

Back
Горе