Answer the question
In order to leave comments, you need to log in
How do class properties and methods work?
Hello, I have three questions:
why are the received values equated to variables? 5th and 6th line.
Do I need to create $text and $title properties if there is a veiw method that accepts the same values?
how does the reserved word $this work?
class Article {
public $text;
public $title;
public function view($text, $title){
$this->text=$text; //<-- здесь
$this->title=$title; //<-- и здесь
}
}
$a = new Article;
$a->text = 'Привет мир';
$a->title = 'Мир';
$a->view('Привет всем', 'Приветствие');
Answer the question
In order to leave comments, you need to log in
<?php
// читай, что такое psr-{0,7}
// Приучай себя сразу к порядку в коде
class Article
{
// Публичные свойства класса.
public $text;
public $title;
// Метод, тоже публичный.
// Судя по названию метода, тут что-то должно
// рисоваться или выводится.
public function view($text, $title)
{
// Так как не указан return этого метода,
// то по умолчанию возвращается null;
// Привыкай всегда что-то возвращать из методов.
$this->text = $text; // здесь публичной переменной присваивается
$this->title = $title; // значение из аргумента этого метода.
}
// $this указывает на этот объект.
// Работает внутри класса.
// $this->text, $this->title - свойства
// $this->view() - вызов метода.
// По умолчанию свойста тождественно равны "null"
}
// Не ленись и называй переменные нормальными именами
// $article = new Article();
$a = new Article; // new Article() <- приучи себя ставить скобки.
/**
* class Article#2 (2) {
* public $text => NULL
* public $title => NULL
* }
*/
var_dump($a);
$a->text = 'Привет мир'; // Установил значение
/**
* class Article#2 (2) {
* public $text => string(21) "Привет всем"
* public $title => NULL
* }
*/
var_dump($a);
$a->title = 'Мир'; // Ещё раз установил значение
$a->view('Привет всем', 'Приветствие'); // И ещё раз.
/**
* class Article#2 (2) {
* public $text => string(21) "Привет всем"
* public $title => string(22) "Приветствие"
* }
*/
var_dump($a);
/**
* array(1) {
* [0] => string(4) "view"
* }
*/
var_dump(get_class_methods($a));
> why the received values are equated to variables?
For these variables to take these values.
>Do I need to create $text and $title properties if there is a veiw method that accepts the same values?
Need
>How does the $this reserved word work?
Referencing an instance of a class.
There is clearly a misunderstanding of the basics of the language \ oop. I advise you to start with this.
PS
>ps only began to get acquainted with classes.
The code:
$a->text = 'Привет мир';
$a->title = 'Мир';
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question