z-z
170 / 169 / 56
Регистрация: 22.06.2011
Сообщений: 980

Использование переменных в классе

07.12.2012, 23:52. Показов 1517. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как осуществить это действие? есть класс, в котором метод, подключающийся к базе и достающий что то из нее. как мне объявить эти переменные? передавать их самой функции? типа $class->method("user", "db".....) так, что ли? хотелось бы просто внутри класса объявить переменные, можно даже внутри метода, но редактор почему то ругается на фигурную скобку... вот что я набросал... с ооп первый раз мучаюсь, так что ругайте "поучительно", пожалуйста))

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    class model    
        function oo(){
            
            var $host = "localhost";
            var $username = "root";
            var $pass = "";
            var $dbname = "test";
            
            mysql_connect($host, $username, $pass) or die(mysql_error());
            mysql_select_db($dbname) or die(mysql_error());
 
            $sql = "SELECT * FROM templates";
 
            $query = mysql_query($sql);
 
            while ($row = mysql_fetch_array($query)) {
                    return $row['template_name'];
            } //ругается на эту скобку
        }
    }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.12.2012, 23:52
Ответы с готовыми решениями:

Использование класса в другом классе
к примеру у меня есть класс class Class_Settings{ function test(){ .. тут вытягиваются переменные из базы ... return array(...

Использование переменных базового класса в дочернем классе
Доброго времени суток. Подскажите пожалуйста как в классе SumbString работать с переменными(string s;int z ; ) класса factory ? Мне...

Инициализация переменных в классе
>>> class A(): ... def __init__(self, data=): ... print data ... self.data = data ... def add(self, data): ... ...

7
 Аватар для Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
08.12.2012, 00:20
крайне советую сделать следующее:
1. почитать классиков ООП
2. изучить синтаксис и возможности объектов в php

то, что ты сейчас делаешь - это не ООП

Добавлено через 1 минуту
ответ на твой вопрос тут - работа с бд
если осилишь читай http://wiki.agiledev.ru/doku.p... n_php_code
0
87 / 87 / 8
Регистрация: 02.09.2012
Сообщений: 510
08.12.2012, 09:20
Отсутствует открывающая скобка после имени класса.
0
08.12.2012, 11:26

Не по теме:

да как бы и переменные объявляются внутри метода.. да и return внутри while - это шедевр.. :)

0
z-z
170 / 169 / 56
Регистрация: 22.06.2011
Сообщений: 980
08.12.2012, 12:40  [ТС]
Василий Макогон, вы плавно перешли к другой проблеме))) я не могу найти нормальную литературу по ооп именно применимо к php... может кто посоветует?)


casual_visitor, это технический косяк)) на самом деле даже если поставить скобку, все равно ругается...


KOPOJI, return я от отчаяния поставил, потому что не работало)) раньше я там просто к другой переменной приравнивал или на экран выводил...

такие извращения делал потому, что хочется, чтоб мой так называемый контроллер дергал функцию из модели без передачи параметров, или это не правильно?) может файл конфигурации создать и инклюдить его к контроллеру? или как лучше сделать?))
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
08.12.2012, 13:22
z-z, с точки зрения синтаксиса это должно выглядеть примерно так, но с точки зрения ооп здесь абсолютно все не верно
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class model 
{   
    var $host = "localhost";
    var $username = "root";
    var $pass = "";
    var $dbname = "test";
        
    function oo(){
            
        mysql_connect($host, $username, $pass) or die(mysql_error());
        mysql_select_db($dbname) or die(mysql_error());
 
        $sql = "SELECT `template_name` FROM `templates`";
        $query = mysql_query($sql);
 
        $array = array();
        while ($row = mysql_fetch_array($query)){
            $array[] = $row;  
        }
        
        return $array;
    }
}


Добавлено через 45 секунд
Цитата Сообщение от z-z Посмотреть сообщение
я не могу найти нормальную литературу по ооп именно применимо к php
почитайте хотя бы эту тему FAQ: Объектно-ориентированное программирование на PHP

Добавлено через 3 минуты
еще рекомендую книгу Метт Зандстра Обьекты, шаблоны, методики программирования PHP, но вот только читать ее нужно когда у вас уже проблем с синтаксисом возникать не будет
0
08.12.2012, 13:28

Не по теме:

Кликните здесь для просмотра всего текста
Цитата Сообщение от alpex Посмотреть сообщение
PHP
1
mysql_connect($host, $username, $pass) or die(mysql_error());
в итоге: с подставляемыми значениями
PHP
1
mysql_connect(NULL, NULL, NULL) or die(mysql_error());
Результат - что то наподобие
MYSQL Error: Access denied for user 'ODBC'@'localhost' (using password: NO)
так что с точки зрения синтаксиса тоже неверно :)

0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
08.12.2012, 13:33
да протупил

Добавлено через 1 минуту
вот так
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class model 
{   
    var $host = "localhost";
    var $username = "root";
    var $pass = "";
    var $dbname = "test";
        
    function oo(){
            
        mysql_connect($this->host, $this->username, $this->pass) or die(mysql_error());
        mysql_select_db($this->dbname) or die(mysql_error());
 
        $sql = "SELECT `template_name` FROM `templates`";
        $query = mysql_query($sql);
 
        $array = array();
        while ($row = mysql_fetch_array($query)){
            $array[] = $row;  
        }
        
        return $array;
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.12.2012, 13:33
Помогаю со студенческими работами здесь

Объявление переменных в классе
#pragma once class streetdb { public: streetdb(void); ~streetdb(void); int admiral_1_137; private: };

Сравнение переменных в классе
подскажите, почему нельзя сравнить переменные result и sum в строке 7 public void CastInterest() { double result; ...

Объявление переменных в классе
Привет. У меня как всегда идиотский вопрос. Следующий код компилятор нормально обрабатывает: using System; class a { public...

Динамическое создание переменных в классе
Кто знает, как сделать, чтобы переменные в классе создавались в зависимости от какой-либо другой переменной? Например, если type ==...

Видимость переменных в дочернем классе.
Есть пакет, в котором есть 2 класса. Экземпляр класса2 создается в конструкторе класса1. Как в дочернем классе обратиться public к...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru