A
A
Alexander2015-06-15 14:45:41
PHP
Alexander, 2015-06-15 14:45:41

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('Привет всем', 'Приветствие');

ps just started to get acquainted with oop.

Answer the question

In order to leave comments, you need to log in

3 answer(s)
D
Denis, 2015-06-15
@Sentim

<?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));

D
D', 2015-06-15
@Denormalization

> 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 = 'Мир';

Does the same as:
In this particular case.

I
IceJOKER, 2015-06-15
@IceJOKER

Read about the scope, variables passed as arguments to the method are available only in the method, and

$this->text = $text; // присваивает значение переданное функции полю класса Article

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question