Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 79

Изучаю ООП и возникают ошибки "unexpected '(', expecting ',' or ';'"

22.11.2013, 19:27. Показов 3831. Ответов 40
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, я изучаю ООП и практикуя возникают вопросы не подвласные моему разуму, пока ) Надеюсь тут найдется добрые люди, кто направить на праведный путь, как с решением ошибок так и с избавлением от говнокода.
Сразу оговорюсь, я предпочтительно понимаю русский язык и порой мне сложно понять, что на их русском мне говорят программисты, так что если не сложно постарайтесь не злоупотреблять )

Итак.
class_Comentary.php
PHP
1
2
3
4
5
6
7
8
9
10
11
class Commentary
{
    $db=MyMysqli::getDB(); //Ошибка ругается сюда! (7 строка) Класс подключения к БД рабочий, и метод db_query тоже.
    
    public function getCommentary($query)
    {
        if($result=$this->db->db_query($query)){
            return $result;
        }
    }
}
viev.tpl
PHP
1
2
3
<?php $query='SELECT * FROM `commentary`'; ?>
<?php $getCom=new Commentary; ?>
<?php $result=$getCom->getCommentary($query); ?>
Получаю ошибку: Parse error: syntax error, unexpected '(', expecting ',' or ';' in \www\libs\class_Commentary.php on line 7
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.11.2013, 19:27
Ответы с готовыми решениями:

Изучаю Python, сейчас учу основы ООП, где можно найти задачи по ООП
Скиньте пожалуйста источники с задачами(желательно на русском)

Ошибка unexpected '.', expecting ',' or ';'
Здравствуйте! Уже полдня бьюсь с этой проблемой, надеюсь на помощь. Описание: Попытка вызова: &lt;? ...

Syntax error, unexpected '(', expecting ',' or ';' )
Добрый день, написал такой скрипт: &lt;?php class Bot { public $sName = &quot; &quot;; private $bAlive = true; private $iHealth =...

40
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
26.11.2013, 23:04
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Синглтон что должен делать? Следить что бы экземпляр был 1.
Но за этим и не должен следить класс, функционал которого используется в виде синглтона. Это должна обеспечить среда, в которой он используется.
Когда класс используется и для того и для другого - это нарушение ООП (SRP).

Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Легко...
Проксей? o_O

Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Вопрос: чем код с синглтоном более связан чем без синглтона?
Да, он завязан еще и на класс синглтона, а не только на интерфейс используемого объекта.
0
 Аватар для nonamez123
189 / 185 / 54
Регистрация: 23.10.2010
Сообщений: 1,336
26.11.2013, 23:08
Цитата Сообщение от KOPOJI Посмотреть сообщение
и что делать, если захочется подключения к разным серверам?
сравнивать подключение. У меня так 3 подключения весят в одном проекте.
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
26.11.2013, 23:10
Цитата Сообщение от OnYourLips Посмотреть сообщение
Но за этим и не должен следить класс
То есть по вашему задача паттерна сингтон - на русском звучащем как "одиночка", не следить за тем, что бы обхект был один?
Можно узнать тогда, что же он должен делать? Давать глобальный доступ к объекту?
0
 Аватар для nonamez123
189 / 185 / 54
Регистрация: 23.10.2010
Сообщений: 1,336
26.11.2013, 23:12
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
То есть по вашему задача паттерна сингтон - на русском звучащем как "одиночка", не следить за тем, что бы обхект был один?
Можно узнать тогда, что же он должен делать? Давать глобальный доступ к объекту?
Одиночка подключения к базе данных. Несколько баз = несколько одиночек к каждой из баз, а не 5-6 к каждой из разных частей проекта. Да и вначале речь шла только об одном подключении, а не о нескольких.
0
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 79
26.11.2013, 23:16  [ТС]
Дабы не плодить излишних споров, синглтон я использую так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
class MyMysqli
{
    private static $db=null;
    private $mysqli;
    
    public static function getDB()
    {
        if(self::$db==null){
            self::$db=new MyMysqli;
        }
        return self::$db;
    }
....
Чем мне пока что "нравится" синглтон, что я действительно хочу что бы был один экземпляр соединения с БД, но я думаю, а можно ли реализовать это как то иначе и смотрю yii и слегка zend.
Читаю паттерны, но без практики через час уже ни чего не помнишь ) Так что я лучше буду думать, писать, читать, думать, править ... но думать.
Посмотрел пару фв там везде конфиг передается в массивах, в чем фишка? У меня пока в классе.
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
26.11.2013, 23:18
Цитата Сообщение от nonamez123 Посмотреть сообщение
Одиночка подключения к базе данных.
Та бд тут при чём? Разговор о паттерне синглтона.
Я так понял, меня пытаются убедить, что его задача не следить за тем что бы объект был 1.

Разговор с чего начался?
С того, что я понимаю эту фразу
Цитата Сообщение от OnYourLips Посмотреть сообщение
Синглтон нарушает SRP (Single Responsibility Principle) — класс синглтона, помимо того чтобы выполнять свои непосредственные обязанности, занимается еще и контролированием количества своих экземпляров.
Как противоположность реальной задачи синглтона.
Его задача следить за количеством объектов. А в ней говорится что его побочный эффект - слежение за количеством объекта.
Вот, мы сейчас с OnYourLips, обратимся на форум англо-русских переводчиков, что бы они нам объяснили, что означает задумка слова сингтон, и должен ли синглтон следить или нет за экземплярами.

Прада тут ответвления пошли на SRP, не совсем понятно при чём тут это, я не сказал что паттерн нужный, я сказал что описание минусов паттерна - кривое

Добавлено через 1 минуту
Кстати, разьве создание сингтона, вот таким способом http://www.riverace.com/ACE/ac... leton.html
нарушает SRP?
0
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
26.11.2013, 23:18
Цитата Сообщение от nonamez123 Посмотреть сообщение
сравнивать подключение. У меня так 3 подключения весят в одном проекте.
Сравнивать с чем?

Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
То есть по вашему задача паттерна сингтон - на русском звучащем как "одиночка", не следить за тем, что бы обхект был один?
И следить, и выполнять некоторый другой функционал.

Цитата Сообщение от nonamez123 Посмотреть сообщение
Одиночка подключения к базе данных. Несколько баз = несколько одиночек к каждой из баз, а не 5-6 к каждой из разных частей проекта. Да и вначале речь шла только об одном подключении, а не о нескольких.
На каждую базу свой класс? И они будут одинаковыми?
Гениально!
0
 Аватар для nonamez123
189 / 185 / 54
Регистрация: 23.10.2010
Сообщений: 1,336
26.11.2013, 23:19
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Та бд тут при чём? Разговор о паттерне синглтона.
Я так понял, меня пытаются убедить, что его задача не следить за тем что бы объект был 1.

Разговор с чего начался?
С того, что я понимаю эту фразу

Как противоположность реальной задачи синглтона.
Его задача следить за количеством объектов. А в ней говорится что его побочный эффект - слежение за количеством объекта.
Вот, мы сейчас с OnYourLips, обратимся на форум англо-русских переводчиков, что бы они нам объяснили, что означает задумка слова сингтон, и должен ли синглтон следить или нет за экземплярами.

Прада тут ответвления пошли на SRP, не совсем понятно при чём тут это, я не сказал что паттерн нужный, я сказал что описание минусов паттерна - кривое

Добавлено через 1 минуту
Кстати, разьве создание сингтона, вот таким способом http://www.riverace.com/ACE/ac... leton.html
нарушает SRP?
ну в холивар я точно не полезу. вы тут админ вам и флаг в руки. (без сарказма и прочей ерести, я просто сразу сдаюсь)
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
26.11.2013, 23:21
Вообщем, каждый останется рпи своём мнении я полагаю

Добавлено через 1 минуту

Не по теме:

Я не админ) Я тут простой юзер, разьве что умеющий чужие сообщения редактировать в некоторых разделах :)


Я холиварить не собираюсь. Я своё мнение сказал, даже гугл говорит что это http://translate.google.ru/#en/ru/Singleton
0
 Аватар для nonamez123
189 / 185 / 54
Регистрация: 23.10.2010
Сообщений: 1,336
26.11.2013, 23:22
Цитата Сообщение от OnYourLips Посмотреть сообщение
Сравнивать с чем?

И следить, и выполнять некоторый другой функционал.

На каждую базу свой класс? И они будут одинаковыми?
Гениально!
класс один, над ним мелкий статический враппер (чем-то похож на фабрику, если мыслить глобально), который следить что бы к каждой бд был только один объект этого класса. Следовательно обращаясь из любой точки к враперу создаться объект для связи с бд если таковой ещё нет или же вернется уже существующий.
0
26.11.2013, 23:29

Не по теме:

Да что такое связь?)

C++
1
2
3
4
5
6
7
8
9
10
struct host
{
    uint32 ip;
    uint16 port;
}
 
class A
{
    host m_host;
}
Нате вам связь.
Хотите ещё? :)

C++
1
class A { char ch; }
Опять связь...

0
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
27.11.2013, 09:36
Цитата Сообщение от nonamez123 Посмотреть сообщение
класс один, над ним мелкий статический враппер (чем-то похож на фабрику, если мыслить глобально), который следить что бы к каждой бд был только один объект этого класса.
И имеет те же проблемы, что и синглтон.

Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Вот, мы сейчас с OnYourLips, обратимся на форум англо-русских переводчиков, что бы они нам объяснили, что означает задумка слова сингтон, и должен ли синглтон следить или нет за экземплярами.
Давай ты просто еще раз перечитаешь то, что я написал?
Я не говорил, что синглтон делает что-то другое.
Я говорил, что его лучше не использовать: его использование ухудшает качество кода.
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
27.11.2013, 10:59
OnYourLips, давайте Вы тоже перечитаете что я написал
Я не говорю что он нужен, я говорю что пункты с ошибка не корректны
0
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
30.11.2013, 17:14
DrobyshevAlex, почему одни и те же свойства синглтона не могут быть его особенностями и ошибками одновременно?
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
30.11.2013, 17:49
Эм...
Возьмём, например, телефон.
Исходя из пункта 1, можно написать, телфона, по мимо того что он выполняется свои обязанности (даёт написать сообщение, посмотреть видео), ещё и позволяет передавать голос на расстоянии.
Вот то же самое там написано.
Это телефон - он должен передавтаь голос.
А то синглтон, он должен контролировать количество экземпляров.
И не важно что там делает класс или мобильник, важно что у паттерна синглтон - основная задача контроль, а там это выставлено побочным эффектом

Я повторюсь, вот класс сингтона.
Он занимается контролированием количества экземпляров других классов.
Он тоже нарушает Ваше SRP?

Не по теме:

ps по вашему имеет право на жизнь только один набор правил? например срп. так же как и один взгляд на историю России который сейчас хотят ввести обязательно, в едином учебнике истории, и уже не важно будет, правильно ли понял ту или иную ситуацию, произошедшую тысячи лет назад, тот кто писал учебник. Вот как он видит - так и было.

0
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
30.11.2013, 20:59
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Я повторюсь, вот класс сингтона.
Он занимается контролированием количества экземпляров других классов.
Окей, давай немного модифицируем класс синглтона, чтобы он продолжал выполнять эту функцию.

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
<?php
 
class SingleInstance
{
    static $hasInstance = false;
 
    private function __construct()
    {
    }
 
    public static function getInstance()
    {
        if (static::$hasInstance) {
            throw new \LogicException("Only one instance is allowed");
        }
        static::$hasInstance = true;
        return new static();
    }
 
    public function act()
    {
        echo "hello";
    }
}
 
$instance1 = SingleInstance::getInstance();
$instance1->act();
 
$instance2 = SingleInstance::getInstance();
$instance2->act();
Синглтон ли это? Нет.
Уменьшилось ли количество говнокода? Да.
Можно ли его уменьшить еще? Да.
0
30.11.2013, 21:18

Не по теме:

Цитата Сообщение от OnYourLips Посмотреть сообщение
static $hasInstance
PHP
1
SingleInstance::$hasInstance = true; //???
:umnik:

0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
30.11.2013, 22:30
Цитата Сообщение от OnYourLips Посмотреть сообщение
Уменьшилось ли количество говнокода? Да.
это Ваше мнение...

OnYourLips, давайте уже определимся, о чём спор, мне кажется, что Вы пытаетесь убедить меня в том, что я говорю что синглтон - это круто и он нужен.
Я ещё раз повторю, забудьте о синглтоне. Сейчас будем строить цепочку, которая покажет, что мне не нравится в той фразе. И что я вообще не говорю что сингтон это плохо или хорошо, он просто есть

Давайте перейдём к случаю с телефоном, что бы не было кусков кода.
Вы считаете что передача голоса, является побочным действием телефона?
0
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
01.12.2013, 05:25
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
И что я вообще не говорю что сингтон это плохо или хорошо, он просто есть
А я говорю, что он есть, и что это плохо, что он есть.

Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Давайте перейдём к случаю с телефоном, что бы не было кусков кода.
Вы считаете что передача голоса, является побочным действием телефона?
Это не относится к делу.
0
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 79
14.12.2013, 00:44  [ТС]
Следующий мой вопрос:
Делаю регистрацию, там все работает, хеширую пароль
PHP
1
$hash=password_hash($pwd, PASSWORD_DEFAULT);
При авторизации делаю проверку
PHP
1
2
3
4
5
6
7
8
9
10
if(password_verify ($pwd, $hash)){
  $_SESSION['test']='pwd correct';
  $this->setCookie($data['login']);
  $this->setSession($data['login']);
  return true;
} else {
  $_SESSION['test']='pwd incorrect';
  $this->errorMsg['authFalse']='Вход не удался, не правильный логин или пароль!';
  return $this->errorMsg;
}
и получаю pwd incorrect

Добавлено через 16 часов 4 минуты
Все работает, я тупанул, до
PHP
1
if(password_verify ($pwd, $hash)){
присвоил $pwd не хэш пароля, а хэш сессии.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.12.2013, 00:44

Ошибка: unexpected '(', expecting T_STRING
Привет ув. форумчане , я новичок. Начал изучать книгу (Маклафлин Б. PHP и MySQL. Исчерпывающее руководство (2013) - первая книга) , по ходу...

Unexpected T_STRING, expecting T_VARIABLE
Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE in S:\home\kursovaya.ru\www\core\bd.php on line 3 Возникает тут: ...

Syntax error, unexpected ')', expecting ';' на line 16
Как исправить ошибку и/или помогите, пожалуйста, решить проблему. Надо чтобы на определённой странице создавались ссылки на произведения. ...

Ошибка - syntax error, unexpected ':', expecting ',' or ')'
Подскажите где здесь ошибка &lt;?php require_once 'db.php'; $Login = $_POST; $Group = $_POST; $FIO = $_POST; ...

Ошибка unexpected T_VARIABLE, expecting T_FUNCTION
Привет всем, помогите с opencart, создал модуль, но выдаёт ошибку: Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru