Няма как, понеже обектите не се изпълняват процедурно.
Трябва да извикаш първо метод
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: Някакъв текст
Като цяло иска някои разбирания ООП, но в момента не мога да ти обясня от-до нещата. Просто гледай да учиш от правилното място, защото много хора си мислят, че могат да пишат обектно-ориентирано, а всъщност не е така.