Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/26: Рейтинг темы: голосов - 26, средняя оценка - 4.81
26 / 4 / 3
Регистрация: 12.02.2013
Сообщений: 87

return $this;

21.02.2014, 22:05. Показов 5212. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
header("Content-type: text/html; charset=utf-8");
class test {
    public $test;
    public $error=0;
    function __Construct($smthnk) {
        $this->test = $smthnk;
    }
    function isInt() {
        if(!is_int($this->test)) {
            $this->error++;
            echo 'Не число';
            return $this;
        }
    }
}
$str = new test('1');
$str->isInt();
?>
Почему ретернится $this? И что именно будет ретернится в таком случае?

Добавлено через 2 часа 39 минут
Узнал, что "return $this;" используют для того, чтобы при обращение к объекту можно было сразу вызвать несколько методов:
$str->isInt()->isString();
Это имеет название текучий интерфейс.

PS Возможно есть еще причины?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.02.2014, 22:05
Ответы с готовыми решениями:

Перехватить return метода
есть метод, который в конце делает return public function getRow($table,$data=false){ код return $result }

Return или echo
Здравствуйте. Когда то мне один программист сказал: в методах классов никогда не используй echo, просто использую return и в том месте где...

Return не возвращает таблицу
Добрый день! Уже час мозг ломаю, почему return ничего не возвращает? если return заменить на echo, выдаст все что нужно, но не срабатывает...

4
 Аватар для Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
22.02.2014, 19:52
других причин нет
0
3 / 3 / 1
Регистрация: 10.11.2013
Сообщений: 58
27.02.2014, 02:07
$this указывает на то, что метод принадлежит этому классу, а не принадлежит члену метода.
Если не указывать $this будет ошибка обращения к методу, который не является членом метода.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
header("Content-type: text/html; charset=utf-8");
class test {
    public $test;
    public $error=0;
    function __Construct($smthnk) {
        $this->test = $smthnk;
    }
    function isString() 
    {
        if(!is_int($this->test)) 
        {
            $this->error++;
            echo 'Строка';
            return $this;
        }
    }
    
      function isInt() 
    {
        if(is_int($this->test)) 
        {
            $this->error++;
            echo 'число';
            return $this;
        }
    }
}
$str = new test('1');
$str->isString()->isInt();
?>
0
6 / 6 / 4
Регистрация: 31.01.2014
Сообщений: 44
30.03.2014, 00:25
А если поменять местами isString() и isInt() в последнем запросе, то выдает ошибку

Fatal error: Call to a member function isString() on a non-object in C:\OpenServer\domains\localhost\test.php on line 30

почему?
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
30.03.2014, 10:21
Цитата Сообщение от hotte Посмотреть сообщение
А если поменять местами isString() и isInt() в последнем запросе, то выдает ошибку
return нужно вытащить из условия
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    function isString() 
    {
        if(!is_int($this->test)) 
        {
            $this->error++;
            echo 'Строка';
        }
        return $this;
    }
    
      function isInt() 
    {
        if(is_int($this->test)) 
        {
            $this->error++;
            echo 'число';
        }
        return $this;
    }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.03.2014, 10:21
Помогаю со студенческими работами здесь

Do\while в return
Вот столкнулся с проблемкой: Цыкл do\while выводит мне все заголовки новостей, но не там где нужно. Не могу придумать как его результат...

Отследить откуда return
Есть функция в которой много return-ов. Как узнать где произошёл выход (вывести номер строки)?

Что это isOk(int s),setAge(int g){if(isOk(g){age=g;return true;}else{.;return false;}}.getName(){return name;}?
package com.company; import java.io.Serializable; public class person implements Serializable { protected String name; ...

Что такое в jquery и java return false и return true
Если я правильно понимаю, то return false отменяет действие по умолчанию, например клик по ссылке, а return true это наоборот приводит в...

Односвязный список - объясните, как работают return 0 и return 1
проверьте, пжлса, по комментариям правильно ли я поняла принцип работы программы. Объясните, как здесь работают return 0 и return 1. и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru