Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Заблокирован
1

Нужны ли return?

31.03.2020, 13:31. Показов 2012. Ответов 4

Author24 — интернет-сервис помощи студентам
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
abstract class Model
{
    private $original = [];
 
    private function table()
    {
        $table_name = implode('_', preg_split('#(?=[A-Z])#', static::class));
        return '`' . ltrim(strtolower($table_name), '_') . '`';
    }
 
    public function findAll()
    {
        $db = Db::getInstance();
        $sql = 'select * from ' . $this->table();
        $stmt = $db->prepare($sql);
        $stmt->execute();
        return $stmt->fetchAll();
    }
 
    public function findOne($id)
    {
        $db = Db::getInstance();
        $sql = 'select * from ' . $this->table() . ' where `id` = :id';
        $stmt = $db->prepare($sql);
        $stmt->execute([
            ':id' => $id
        ]);
        $this->reflection($stmt->fetch()); // может быть return $this->reflection($stmt->fetch()); ???
    }
 
    private function reflection($obj)
    {
        $reflection = new ReflectionObject($obj);
        foreach ($reflection->getProperties() as $property) {
            if ($property->isPrivate()) {
                $property->setAccessible(true);
                $this->original[] = (string)$property->getValue($obj);
                $property->setValue($this, null);
            } elseif ($property->isProtected()) {
                $property->setAccessible(true);
                $this->original[] = (string)$property->getValue($obj);
                $property->setValue($this, (string)$property->getValue($obj));
            } else {
                $this->original[] = (string)$obj->{$property->getName()};
                $this->{$property->getName()} = (string)$property->getValue($obj);
            }
        }
        // может быть return $obj; ???
    }
}
Дело в том что всё и так работает: заполняются свойства, но вопрос актуален с точки зрения правильности, с ретурнами немного беда у меня
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2020, 13:31
Ответы с готовыми решениями:

Что это 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 {...

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

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

В чем разница между return и return false/true
Привет всем. Вот подскажите плиз) return; return false; return true; расскажите пожалуйста...

4
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,801
31.03.2020, 17:08 2
Лучший ответ Сообщение было отмечено Verolomstvo как решение

Решение

PHP
1
 $this->{$property->getName()} = (string)$property->getValue($obj);
Обычно в AR возвращается новый объект, а не заполняется текущий. Тебе нужен не this, а new self() заполнять и вернуть его.
1
Заблокирован
31.03.2020, 17:32  [ТС] 3
crautcher, ну я с потомками работаю, например

PHP
1
2
3
4
5
6
7
8
class Country extends Model
{
 
}
 
$obj = new Country();
$obj->findOne(1);
var_dump($obj);
выхлоп
Код
object(Country)[1]
  private 'original' (Model) => 
    array (size=5)
      0 => string '1' (length=1)
      1 => string 'ru' (length=2)
      2 => string 'Россия' (length=12)
      3 => string 'Бонус к параметрам морской техники.' (length=65)
      4 => string '20' (length=2)
  public 'id' => string '1' (length=1)
  public 'code' => string 'ru' (length=2)
  public 'name' => string 'Россия' (length=12)
  public 'description' => string 'Бонус к параметрам морской техники.' (length=65)
  public 'bonus' => string '20' (length=2)
вроде как работает
0
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,801
31.03.2020, 17:46 4
Лучший ответ Сообщение было отмечено Verolomstvo как решение

Решение

Цитата Сообщение от Verolomstvo Посмотреть сообщение
вроде как работает
Как ты узнаешь, что что-то НЕ найдено? Ты можешь делать, как тебе удобно. Стандарт AR выглядит примерно так:
PHP
1
$obj = Country::findOne(1);
И там либо объект Country, либо null если не найдно ничего
1
Заблокирован
31.03.2020, 18:08  [ТС] 5
Цитата Сообщение от crautcher Посмотреть сообщение
Country::findOne
блин буду назад в статику переписывать, раньше так сделал был
0
31.03.2020, 18:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2020, 18:08
Помогаю со студенческими работами здесь

How can to return value (return value; ) of javascript function to ASP ?
How can to return value (return value; ) of javascript function to ASP ?

Как сделать так, что если файл существует return true, если нет - return false
Здравствуйте, я новичок в программировании. Мой вопрос очень прост: как сделать так, что если файл...

Как происходит передача значения после return 0 и почему после return ставится 0
#include <stdio.h> int power(int m, int n); /* тест функции power */ main() { int i; ...

Какие значения нужны нужны циклу while?
#include <algorithm> #include <iostream> #include <vector> using namespace std; int...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru