Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.07.2013, 23:29
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

Получение значения свойства из класса.
Приветствую.

На php.net есть такое:
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Соединение не установлено: %s\n", mysqli_connect_error());
    exit();
}


$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf ("ID новой записи: %d.\n", $mysqli->insert_id);


У меня создан класс DB который делает все операции с БД.
Использую его так:

$this->DB = new DB();


И получается что я немогу сделать так :

echo $this->DB->insert_id;


Мое решение:
В созданном классе DB создал доп. поле

$this->last_insert_id = $this->mysqli->insert_id;


Данный код срабатывает после Inserta

теперь я могу получать id последней добавленной записи через поле
$this->DB->last_insert_id


Но дело в том что недавно узнал о излишней памяти которая выделяется под поля. Рекомендовалось ограничить их использование. Но и конечно само решение непомешает. По сути я не хочу манипулировать созданным соединением, но и писать методы для получения того что стандартно тоже.

Возможно имеет смысл както возвращать соединение как обьект?
Дело в том, что используя стандартные названия методов лучше так как не нужно изучать что за ним скрывается.
Ответить с цитированием
  #2 (permalink)  
Старый 23.07.2013, 04:42
Профессор
Отправить личное сообщение для mta88 Посмотреть профиль Найти все сообщения от mta88
 
Регистрация: 16.05.2013
Сообщений: 229

Цитата:
И получается что я немогу сделать так:
echo $this->DB->insert_id;
а я могу
<?php

class A {
  public $v = 12;
}

class B {
  public $a;
  
  public function __construct() {
    $this->a = new A();
  }
}

$b = new B;
echo $b->a->v;
Ответить с цитированием
  #3 (permalink)  
Старый 23.07.2013, 20:27
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

А что если так?

<?php

class A {
  public $v = 12;
  public $obj = new SomeClass();// Он имеет метод run()
Пример: $this->obj->run();
}

class B {
  public $a;
  
  public function __construct() {
    $this->a = new A();
  }
}

$b = new B;
echo $b->a->v;


как запустить это в Class B?
$b->a->obj->run();
не работает
Ответить с цитированием
  #4 (permalink)  
Старый 24.07.2013, 06:25
Профессор
Отправить личное сообщение для mta88 Посмотреть профиль Найти все сообщения от mta88
 
Регистрация: 16.05.2013
Сообщений: 229

Цитата:
не работает
не, не, не
у вас ошибка вот в этой строчке
public $obj = new SomeClass();

инициализировать поля объектов вне конструктора можно только простыми выражениями, строками и числами если коротко
и компилятор явно об этом предупреждает
Ответить с цитированием
  #5 (permalink)  
Старый 30.07.2013, 05:22
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 05.06.2009
Сообщений: 1,703

Цитата:
Но дело в том что недавно узнал о излишней памяти которая выделяется под поля.
А я использую Doctrine для работы с БД, там тысячи лишних полей и меня это как то не смущает.
__________________
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
Самые главные в жизни вещи - не вещи! (было написано на одном гараже =)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение вычисленного значения css свойства FanAizu jQuery 2 12.03.2014 20:30
Получение значения переменной внутри обработчика события jQuery Mbenga Общие вопросы Javascript 2 01.07.2013 10:57
Использование классов в JavaScript devote Ваши сайты и скрипты 70 01.02.2013 17:17
получение значения поля eidicon jQuery 4 02.07.2012 19:06
получение значения из классов karmis Events/DOM/Window 1 14.10.2011 19:09