Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
 Аватар для nepster
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844

что такое классы?

31.12.2009, 14:38. Показов 2108. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вот столкнулся с таким вопросом, что такое классы? Почти во всех скриптах встречаются классы, залесс в гугл, там в основном пишут как их писать, обьяните пожалуйста что это такое и зачем они?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.12.2009, 14:38
Ответы с готовыми решениями:

Что такое демон?
Привет, братья по разуму!!! Давно уже слышал про каких-то демонов в пхп и вот сегодня снова встретился с таким термином. На одном...

что такое пхп?
что такое пхп?

Что такое CGI скрипт?
Скажите своими словами что такое CGI скрипт. Прочитал кучу определении, даже на википедии побывал, но никак не пойму что это. Как это...

12
 Аватар для Dimedrol
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
31.12.2009, 15:02
В интернете много чего есть:
Классы удобны для:
Объединения функций в одну группу, к примеру для работы с БД. Там можно создать классы для разных типов баз данных: mysql, mssql, postregSQL и других.
А уже в модуле подключения загрузить нужный класс. При этом наличие класса позволяет создать сразу несколько подключений и обращаться к ним по очереди.
Также классы могут накапливать у себя информацию, что при использовании нескольких экземпляров очень удобно.
И на последок, классы делают код немного читабельнее, хотя всегда можно обойтись и без них.
для более универсального кода. простой пример:
есть класс - животные.
для него методы - есть, пить, спать, размножаться, общаться
дальше создаешь объекты - лиса, волк, медведь, заяц.
можно, если нужно, переопределить методы. (например все жрут мясо, а заяц - траву)
теперь "покормить лису", "размножить волка", "пообщаться с медведем" можно элементарно в 2 слова.
а потом появляется птица, которая ко всем предыдущим действиям-методам, умеет летать. в 2 строки расширяешь класс животные и теперь птицы умеют летать.
а потом могут появиться рыбы какие-нибудь и гуманойды, но проблем с ними не будет
1
 Аватар для nepster
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
31.12.2009, 15:36  [ТС]
тоесть как я понял, классы заменяют огромное кол-во проверок?
0
Программист
 Аватар для motakuji
107 / 111 / 9
Регистрация: 27.09.2009
Сообщений: 331
01.01.2010, 20:19
Цитата Сообщение от nepster Посмотреть сообщение
тоесть как я понял, классы заменяют огромное кол-во проверок?
Классы позволяют съекономить время и размер кода за счёт наследования. Приведу пример:
К примеру у нас есть класс users в котором определены функции,которыми должны обладать все пользователи сайта:чтение информации,добавление комментариев и т.д. Потом создадим класс reg_users и сделаем его классом наследником от класса users и тогда он уноследует все те функции,которыми обладает класс-родитель + мы добавим в него новые функции-это написание статьи,редактирование личной информации и т.д. Потом создадим класс admins и опять наследуем класс users и дописываем функции,кот должен обладать администратор...

вот пример того,что я написал:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
class Users{
public function get_news (){...}
public funcrion get_comments (){...}
public function set_comments () {...}
}
class Reg_users extends Users{
public function set_news () {...}
public function ubdate_inf () {...}
}
class Admins extends Users{
public function delete_news () {...}
}
а использовать это очень легко
PHP
1
2
3
4
5
6
$admins = new Admins();
//пример использования класса Admins
$admins->get_news();
$admins->get_comments();
$admins->set_comments ();
$admins->delete_news ();
Надеюсь,что на основе этого примера станет понятен смысл использования классов
1
31 / 3 / 1
Регистрация: 16.02.2009
Сообщений: 90
03.01.2010, 09:47
Цитата Сообщение от nepster Посмотреть сообщение
тоесть как я понял, классы заменяют огромное кол-во проверок?
Классы мона использовать по разному...
-можно тупо обьединять в нём все функции....
НО
задумайся над смыслом самого слова КЛАСС. что это?! и что такое ОБЬЕКТ?!
с помощью класса можно создавать обьекты, которые ТЫ и описываешь.
Оч полезная хрень короче......
вот допустим у тебя есть вложеное меню на странице, а отображать надо только выбраный уравень меню. это можно сделать при помощи класса - создать конструктор обьектов уравней меню. Посылаешь в класс level меню и подгружаешь из бд все записи =level
допустим так
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
<?php
class clsMenu {
private value;
private level;
private counter;
 
function clsMenu($lvl) {
$q=mysql(DBNAME,"SELECT * FROM table WHERE level='$lvl'");
$z=mysql_num_rows($q);
if (mysql_errno()!=0) die(mysql_error()); 
if ($z>0) {
for ($i=0;$i<$z;$i++) {
$f=mysql_fetch_array($q);
$this->value[$i]=$f[value];
$this->level[$i]=$f[level];
}
} 
$this->counter=$z;
}
 
function getValue($i) {
return $this->value[$i];
}
function getLevel($i) {
return $this->level[$i];
}
function getCounter() {
return $this->counter;
}
}
?>
и придаёшь ему форму
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
include "clsMenu.php";
 
if (!empty($_GET[lvl])) $user_menu=$_GET[lvl];
else $user_menu=0;
$menu= new clsMenu($user_menu);
?>
<html>
<head><title>CLasS</title></head>
<body>
<?
for ($i=0;$i<$menu->getCounter();$i++) {
?>
<div>
<span><?=$menu->getValue($i)?></span>
<span><?=$menu->getLevel($i)?></span>
</div>
<?
}
?>
</body>
</html>
1
Программист
 Аватар для motakuji
107 / 111 / 9
Регистрация: 27.09.2009
Сообщений: 331
03.01.2010, 14:53
Ну во-первый конструктор начиная с пятой версии,а вы описываете именно её,т.к. пишите private определяется зарезервированным словом __construct() .
Во-вторых тут у вас ошибка запроса

Цитата Сообщение от qpayct Посмотреть сообщение
$q=mysql(DBNAME,"SELECT * FROM table WHERE level='$lvl'");
$q=mysql_query("SELECT * FROM table WHERE level='".$lvl."'");
1
31 / 3 / 1
Регистрация: 16.02.2009
Сообщений: 90
04.01.2010, 05:09
Цитата Сообщение от motakuji Посмотреть сообщение
Ну во-первый конструктор начиная с пятой версии,а вы описываете именно её,т.к. пишите private определяется зарезервированным словом __construct()
только если буквально, а я имел ввиду под словом "конструктор" - класс, как "конструктор обьектов", а не как "конструктор класса".
Цитата Сообщение от motakuji Посмотреть сообщение
Во-вторых тут у вас ошибка запроса
$q=mysql_query("SELECT * FROM table WHERE level='".$lvl."'");
мы оба ошиблись, а правильно будет так
PHP
1
$q=mysql_query("SELECT * FROM table WHERE level=$lvl");
1
 Аватар для nepster
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
04.01.2010, 15:09  [ТС]
в общем, я понял, что нужно потихоньку начинать учить классы и функции, всем спасибо
0
Программист
 Аватар для motakuji
107 / 111 / 9
Регистрация: 27.09.2009
Сообщений: 331
04.01.2010, 20:47
Цитата Сообщение от qpayct Посмотреть сообщение
мы оба ошиблись, а правильно будет так
и где интересно я ошибся? это верный код. Я по стандартам написал.Не смешивая текст с переменными.Мой код будет понятен во всех средах разработки.Есть такие,которые не подсветят переменные,кот расположены внутри текста.Вот
0
31 / 3 / 1
Регистрация: 16.02.2009
Сообщений: 90
05.01.2010, 03:11
Цитата Сообщение от motakuji Посмотреть сообщение
Вот
По каким это таким стандартам ты написал?
Заметь, во всех 3-ёх случаях переменная $lvl - integer, а значит вообще никаких кавычек не надо ставить. работать может и будет. не вижу смысла ставить кавычки и прочие лишние знаки, когда в этом нет необходимости.
0
Программист
 Аватар для motakuji
107 / 111 / 9
Регистрация: 27.09.2009
Сообщений: 331
05.01.2010, 11:30
Цитата Сообщение от qpayct Посмотреть сообщение
Заметь, во всех 3-ёх случаях переменная $lvl - integer, а значит вообще никаких кавычек не надо ставить. работать может и будет. не вижу смысла ставить кавычки и прочие лишние знаки, когда в этом нет необходимости.
а где написано,что эта переменная integer? ты такого не описывал.
0
31 / 3 / 1
Регистрация: 16.02.2009
Сообщений: 90
05.01.2010, 12:45
Цитата Сообщение от motakuji Посмотреть сообщение
а где написано,что эта переменная integer? ты такого не описывал.
как это? я описал работу меню, а $lvl - номер уравня меню, а следовательно integer.
читать надо внимательней, друг.
0
42 / 41 / 3
Регистрация: 04.01.2010
Сообщений: 205
05.01.2010, 20:08
Правильно мотакуджи говорит. Писать лучше по стандартам. Также как и дизайн делать.

Стандарты - залог того, что в вашем коде будет легко разобраться не только вам, а также того, что он всегда будет работать именно так, как задумано.
Например, какой-нибудь *** возьмет и напишет в адресной после лев какую-нибудь абракадабру, и ппц.
Точно также, как и писать в эхо и т.п. текст, который заведомо не содержит переменных луче в одинарных кавычках, так как это ускоряет обработку скрипта.
В общем - стандарты это стандарты.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.01.2010, 20:08
Помогаю со студенческими работами здесь

Расскажите что такое xdebug?
Куда его устанавливать надо? На сервер или на комп? Если на сервер, то как его установить на FreeBSD? Директивы php.ini тоже на сервере...

Что такое символические ссылки?
Как это работает и как пользоваться опцией FollowSymLinks?

Какие книги или что изучить чтоб научиться такое делать на пхп?
1. Регистрацию юзера 2. Авторизация 3. Восстановление пароля 4. Смена пароля в личном кабинете 5. Добавление категории 5.5 Список...

Что такое phpBB?
Желательно докладно и понятно

Что такое подкатегории?
Что есть подкатегории(subcategories)? Как это организовывается в БД, подключается через функции и тд? В интернете почему-то мало...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru