Не парьте себе мозги
У сервера может быть одна кодировка у БД другая а у клиента БД третья а сами данные в четвертой а ось на которой сервер синстален в пятой
вы указываете как вам должны вернуть данные через set names
Остальное забота сервера и клиентских библиотек (драйвера)
там где вы скачали должны быть разные варианты. Кроме версии еще библиотека может быть threadsafe или нет, скомпилена студией 6 или 9 версии
вариантов много.
поставте расширение денвера для php5 там эта либа уже есть
1) Статические свойства хранят в себе значения, общие для всех объектов?
значения безусловно общие но они могут существовать и без объектов
2) Можно ли общаться к статическим свойствам не из объектов?
для того они и созданы но вопрос неточен - не создавая объектов
3) Можно ли из объекта менять значения статических свойств?
а как же
4) Как обращаться к статическим свойствам из объекта?
как к обычным cвойcтвам но стилистически правильно через self::
5) Для доступа к статическим свойствам нужны статические методы?
обычно да но ничто не мешает обращатся через методы екземпляров
6) Для чего нужны статические методы.
для функций общих для класса но не требующих наличия экземпляра.
Например для всякого рода фабричных методов.
нужно прописать ее в php.ini
там уже есть список - посмотрите по аналогии. Только версия расширения должна совпадать с версией PHP. И зачем вы изучая программирование какую то экзотику юзаете. Поизучайте хелпы и доку в стандартном PHP полно функций на ве случаи жизни, во всяком случае для вашего начальнго уровня хватит.
Касательно "шо сие такое?" - это ошибка системы ... неверные конфиги не
конфиги надо проверять а систему тестировать
если такое возникло системма уже нерабочая нет смысла вообюще говорить об исключениях и классах
Цитата:
Это какая-то внутренняя функция вернула фигню (должна была bool, а вернула массив и мы не знаем что с этим делать)
Функция должна возвращать не фигню а то что должна. Предлагаешь вместо исправления чего то говнокода городить кучу исключений. И что ты сделаешь дальше? напишешь юзеру "извините у нас тут функция неправильная"
Цитата:
которая не должна была произойти в системе - недоступные файлы, соединения, экземпляры классов и тд.
Недоступные файлы и соединения - исключительные ситуации после которых прога останавливается пока сисадмин не разберется. Если это происходит несколько раз подряд гнать в шею сисадмина, сиэма, архитектора или кодера - кто там крайний
либо проверять акуратно соединения и файлы если это что то внешнее не зависящее от вас
опять же - это бизнес логика проверил принял решение что дальше делать исключения тут тоже не нужны
кривые экземпляры классов следствие кривых рук программиста выбросившего исключение вместо закончить кусок бизнес-логики до логического конца (Добавление)
Цитата:
Хватит чесать языком, напишите наконец эти строчки с возврат
У тебя проблема с русским языком? Могу на английскомм (Добавление)
Цитата:
Валить все в исключения - не гуд.
Валить вообще все в НЕисключения тоже не гуд.
Об этом и речь - в исключения валить исключительные ситуации
то что касается бизнес логики обрабатывать на месте и принимать решение
это значит, что исключения развивают безолаберность, а нетипизированность возврата функций - наоборот, ведёт к духовному и профессиональному росту?)
Нетипизированность - особенность языка программирования PHP
а исключения применяемые для неисключительных ситуаций, имплементации бизнес-логики а тем более выбрасываемые с конструктора это и есть безалаберность
А на фига мне делать проверки и думать что там код возвратит
охвачу кеаждую функцию и ввесь файл try и все дела
если статик класса вернул что-то типа "не экземпляр" то значит бяда, что-то не так.
Да, но что именна за бяда вы уже знаете метод уже это определил тут ничего не надо делать просто вернуть сообщение клиенту
это не исключительная ситуация
Цитата:
К сожалению у меня такое только в виде счастливого исключения будет встречаться.
Скорее всего это результат неудачной архитектуры
Но никаких проблем нет
собсвенно никто не мешает пользоватся и конструкторами и прямым присвоением
если говорить про конкретно этот случай, то catch будет один, потому что обычно абсолютно всё равно, какая причина помешала пользователю залогиниться,
Не все равно
ошиька БД это одно
неверный пароль это другое
пароль верный но expired это третье
Цитата:
А если объект это лютое сочетание 5-ти запросов к БД? Где мне все эти запросы делать?
В методе логин и делаете где же еще? Этот метод выполняет конкретную функцию в бизнес-логике. Количество запросов не имеет значения
Цитата:
Где, как не в конструкторе их все инициализировать?
если кроме инициализации переменных класса - то есть присвоения им значения производятся еще какието действия вычисления и т.д. тогда конечно нужен конструктор
в данном случае речь шла о присвоении полей таблицы БД полям класса (Добавление)
Цитата:
Т.е. хочется только помнить что у каждого класса есть статический метод типа check который вернет либо обьект, либо сигнал о проблеме.
да, только сигнал это не исключение которое будет поймано неизвестно где
а если оно поймано тут же то на фига оно надо если можно обойтись IF
Цитата:
Хотелось бы конечно однообразия и однообразия академического.
нужно пользоватсыя здравым смыслом и пракьтическим опытом а н не выкладками теоретиков (Добавление)
Это PHP приучает так писать безалаберно
писали бы вы на С++ такие ноимера бы не прошли
выкинули исключение с класса а класс остался в памяти
(знаменитая memory leak)
через пару дней бы сервер остался без памяти а еще пару дней бы ушло найти где проблемма