dcc0 нет я не в Москве) Panoptik согласен с вами, работать бесплатно не пойду, лучше дома посижу, и сам поучусь.
MiksIr пишет:
Вот видите, сразу важные ошибки.
1. Вы не до конца просмотрели пример документации, там есть вариант с замыканием.
2. Вы не знаете, что такое callable, что можно передавать в этот аргумент, что объект и класс - это разные вещи, и объект должен быть создан
3. Плохо читаете сообщения об ошибках Fatal error: Uncaught exception 'LogicException' with message 'Passed array specifies a non static method but no object (non-static method spl_autoload::autoload() should not be called statically)'
1. До конца я посмотрел!
2. Знаю я разницу... и в свою защиту скажу что не задумывался, как устроена эта функция внутри, вызывал ее просто передав название класса и метода в аргументе, как и было написано в примере! И если передать не static, таким образом, работать не будет! И да я не создавал объект перед этим, наивно предполагая, что функция сама его создаст... MiksIr и да, спасибо! Теперь буду знать, что и так можно делать!
И к стати замыкание там описано в комментариях, а не в самой документации...
Ну да, хотя в том же js, я предпочитаю использовать var array = []; меньше букв)
Dastor пишет:
Да не переживай ты так. Первые собеседования всегда сложные) Потом будет легче.
та да)) просто вчера пришел домой уставший, злой, и разочарованный... вот поспал, и попустило))))
Dastor пишет:
По поводу джуниора - у него практический опыт может быть и не большим, но теоретические знания должны быть на достаточно высоком уровне.
Также должен быть высокий уровень обучаемости.
ну не на уровне цитирования любой редко используемой фигни из мануала, ну это имхо, согласен на счет обучаемости, я даже считаю это должно быть самым главным и жирным +, а не знание теории того, что ты не используешь, опять же имхо, практика и теория должны идти рядом взявшись за руки! Я действую таким вот способом, попадается что то новое, то я читаю с начало теорию, пробую на практике, потом перечитую теорию, а потом уже могу более-менее нормально это использовать. А зубрить одну теорию не вижу никакого смысла!
Dastor пишет:
Основы баз данных надо знать
согласен, но это не то к чему бы стоило придираться, если бы мне понадобилось отличие между первичным и уникальным ключем, я бы посмотрел в нете 1 мин. на поиск, около 10 мин. что бы разобраться... другое дело запросы к базе, то что постоянно используется...
Dastor пишет:
Добавлю еще, что на собеседование какими бы ты знаниями не обладал, важно оставить благоприятное впечатление о себе.
Ну в моем понимании, я должен составлять благоприятное впечатление... Одет строго, туфли, брюки, рубашка(тениска), от меня не воняет сигаретами, в разговоре чувствую себя спокойно и уверенно, не мямлю, не шипилявлю, не заговариваюсь, не стесняюсь, иногда вставляю безвинную шутку, обращаюсь с уважение на Вы, даже если вижу, что общаюсь примерно со своим одногодкой, и он начинает переходить на ты. Если знаю вопрос, четко отвечаю, если нет говорю что не сталкивался еще с этим. В общем на мое мнение я должен производить впечатления уверенного, общительного, аккуратного и ответственного человека! Хотя на первом собеседовании чувствовал себе немного скованно...
DeepVarvar пишет:
Ну почему, если предположить что это пользовательский класс имплементирующий аррай-акцесс/итератор, тогда вполне себе можно.
Но я не понимаю зачем ))
да в том то и дело, что вопрос был про стандартные способы инициализации массива...
и вот к стати, Ch_chov, написал способ который я не знал - $array = (array) null; Но проводящий собеседование походу тоже этого не знал, раз написал $array = new Array();..
dcc0 пишет:
require и include вроде отличаются уровнем предупреждений.
Именно в этом и есть их основное различие, а в не в возврате или не возврате return...
То есть мне задали вопрос на который и сами не знали ответ, а раз не знали значит этим и не пользуются... Так зачем задавать тогда?
Мелкий пишет:
exlant пишет:
по-другому функция автозагрузки(spl_autoload_register) не будет работать
Будет, она жрёт любой валидный callback, можно дать обычный объект с обычным методом.
Просто обычно удобно замыканием или статическим методом.
Fatal error: Uncaught exception 'LogicException' with message 'Passed array specifies a non static method but no object (non-static method spl_autoload::autoload() should not be called statically)'
Мелкий пишет:
С суждением согласен. Инкапсуляцию объяснить должен даже джун.
Да я согласен с этим, я бы и смог объяснить и инкапсуляцию, и наследование, и абстракцию, и полиморфизм, и что такое static, private, public, protected и для чего используются! Но вопрос не был задан таким образом, меня попросили объяснить почему я использовал здесь это а здесь это, на что искренне и честно ответил, что не помню, а комментариев там не было, а мне на основе всего этого заявили, что я не понимаю ооп...
Мелкий пишет:
Заблуждение. Бывает.
А зачем тогда спрашивать, раз сам этим не пользуешься...
Мелкий пишет:
Даже техлид в одной компании может быть всего лишь джуном в другой. И это будет серьёзным профессиональным ростом, как правило.
Согласен, но в своем резюме я явно указывал, что я только начинаю, и у меня нет практического опыта! Зачем тратить свое и чужое время?
В php я себя чувствую довольно уверенно, конечно не все знаю, не все умею, не со всем сталкивался... Вот решил попробовать устроиться на работу на вакансию php junior, прошел несколько собеседований(4). И у меня возник вопрос, а что собственно должен знать junior php developer? Насколько я понимаю junior php это тот, который после института, без или с не значительным опытом работы... Я видел код, и вопросы студентов выпускников на этом форуме, да и на других, с уверенностью могу сказать, что мои знания и понимание php выше их! Конечно студенты разные бывают....
Вот немного про собеседования:
1-ое собеседование: я показывал свой класс автозагрузки классов, работодатель увидел static метод, спросил чего я использовал именно static, на что я ответил по-другому функция автозагрузки(spl_autoload_register) не будет работать, пошли дальше! Открыл ему следующий файл, там был класс с кучей свойств и методов, c разными модификаторами private, protected, public, меня спросили почему я использовал здесь private, там protected, тут public, на что я ответил, что не помню и объяснил почему,(это был старый код без комментариев) почему использовал именно такой модификатор, и мне заявили, что я вообще не разбираюсь в том, что пишу и абсолютно не знаю принципов ооп, и что я вообще зря полез в такие дебри, и что мне нужно начинать с самых основ, с понятия что такое переменная, что такое объект, что такое массив. Ну я ответил, что вроде как знаю это все, переменная это ячейка для хранения данных, объект и массив являются типами переменной. И тут мне говорят, что объект и массив это не переменные, а структуры! Ну я не спорил. Домой пришел посмотрел в нете, и там пишут что таки объект и массив это типы переменной, даже на этом сайте так написано, значит я был прав!
Еще спросили различии между require и include, сказал что не знаю в основном использую require, на что мне было сказано главное отличие это то что require возвращает return, а include нет, и именно поэтому require намного ресурсоемче чем include. Пришел домой посмотрел в нете, а return возвращает и require, и include, а отличие у них совершенно в другом...
Еще спрашивали отличие между php 5.4 и 5.6, вспомнил только про mysql_* deprecated, но разве junior должен знать отличии между версиями php?
В общем сошлись на том, что дали мне тестовое задание, простенькое, написать форму, и при клике сделать js валидацию, и потом отправить пришедшие данные на почту, и записать в базу! Сделал отправил им, ответа не было... неужели так сложно было ответить хоть что то....
2.е собеседование прошло нормально, ответил на большинство вопросов, сделал небольшое тестовое задание, сказали позвонят. Спустя время на почту пришло письмо, о том что готовы меня взять на стажировку и обучение, удаленно и бесплатно(на 1-2 месяца)
3.е перед собеседованием дали ТЗ написать, написал, выслал, пригласили на собеседование! На собеседовании дали писать долгие нудные тесты, на определение типа характера и смекалки, потом сказали, что тест вообще не важен, и задали пару вопросов про php, один на временные функции - не ответил, другой про транзакции, сказал, что знаю что это такое, но никогда еще не сталкивался. Тоже на почту пришло письмо, что я не подхожу их компании.
4.е один из вопросов, сколько я знаю методов инициализации массивов, я написал
на что мне было сказано, что нужно именно $obj = new $name(), а $obj = new $name; не отработает... Я начал было спорить, что оно и так и так работает, но мне было сказано что я не прав!
Потом начал проверять мои знания алгебры и геометрии, и сказал что программист должен думать алгоритмами, а не языковыми конструкциями! В общем мне было отказано в работе, и предложен бесплатный испытательный срок...
Я приехал домой, и конечно все проверил: $obj = new $name; прекрасно работает! А на его дописанный способ инициализации массива в php - $array = new Array(); IDE сразу ругнулась, ошибкой синтаксиса....
в общем сложилось впечатление, что на одних собеседованиях целенаправленно пытаются завалить, притом спрашивают вещи, которые и сами не знают...
на других, какие то завышенные требования к junior программисту! ну неужели junior должен знать разницу между php 5.4 и php 5.6? Или же знать и во всю использовать транзакции? Или же знать разницу между первичным и уникальным ключами?
Что должен знать и уметь junior?
Посоветуете что делать? А то я в замешательстве... Искать дальше работу, то есть активно ходить на все собеседования? Идти стажироваться бесплатно? Дальше самому заниматься, наращивать скилы?
p.s сейчас делаю тз, реализовал пока только регистрацию, и аутентификацию на mongoDB(условие тз), вот ссылка на гитхабе https://github[dot]com/exlant/ticTacToe , если кому не сложно, просмотрите и дайте оценку коду, может я действительно не готов еще идти на junior php программиста.
p.s.p.s. сори за столько много букв, просто накипело, две недели потратил на все это, и никакого результата.....
вот зачем я писал про подготавливаемые запросы, потом расписывал как это примерно выглядит, давал ссылку на мануал, где тоже все описано??? Объяснял, что не красиво в коде использовать всякие $bd(биде) для названия переменной(вы что про унитазы пишете??? )
Гоняться за всеми обновлениями - смысла не вижу, в виду того, что - как показало время - уязвимости и проблемы никуда с новыми версиями не уходят (одни закрывают, появляются новые), меняется обертка, а в сущности все то же самое.
если бы все так рассуждали, то мы бы еще до сих пор все в DOSе сидели...
1. нет, в таком виде, как я написал(массив для подготовленных запросов с параметрами, можно обозвать как пожелаете...) $parameters = array(':url' => $_POST['url'], ':id' => $id);
2. Это запрос к базе данных, что бы не писать вот так: $sth = $dbh->prepare('UPDATE `configs` SET `bloknot`= :url `WHERE` id= :id');
3. Вот это само подключение $dbh-> http://php.net/manual/ru/pdo.construct.php
а $sth означает "Statement Handle"...
И вся эта строчка, подготавливает запрос - $sql к ДБ - $dbh , и помещает объект с подготовленным запросом в $sth
4. execute() - выполняет подготовленный запрос, в нашем случаи с параметрами, которые находятся в массиве - $parameters.
1. Все равно. Если не очень умеете с файлами работать, то в базе Mysqi, mysql, postgre и т.д. (cамая популярная mysql, но ей на смену идет mysqli)
не путай MySql с php API для работы с ней, такими как mysql_* и mysqli_* и тоже PDO работает с MySql!
Цитата:
Очередной максимализм и агитация. Лет 10 поддержка еще будет.
Никуда разом Mysql не выпилить. Не надейтесь.
правильно нужно ориентироваться на устаревшие технологии...
так может и php c 4ой версии изучать?
между прочим уже есть достаточно серверов с поддержкой php 5.5.0, где mysql_* будет уже выдавать deprecated
Александерр это далеко не все отличии....
В плане безопасности там есть - подготавливаемые запросы! Про них тоже следует почитать!
в общем читайте! Не думаю что у кого то есть желание пересказывать вам мануал!
Мелкий ну на мое мнение, если используется один из этих методов, то и заполняться должен соответствующий ему массив! Использовал метод get заполнился массив _GET, использовал метод post заполнился массив _POST, хотя это далеко от реальности! (Добавление) DelphinPRO $_REQUEST[] - ага, и он заполняется!
просто так никогда на приходилось делать(писать в action формы get параметры), я параметры, в таком случаи, по другому передавал (в хиден полях, в сессиях)...
даже и не думал, что так можно, да и не где не надо было мне так делать!
то как вы пишете абсолютно не безопасно! Да и API mysql_* уже устарела, и будет удалена в следующей версии php! Используйте mysqli или pdo c их подготавливаемыми запросами!
В любом случаи эта тема для меня не настолько интересна, что бы сейчас разбирать в ней! Просто чисто интуитивно, подозревал, что методы get и post HTTP протокола, как то связанны с cуперглобальными массивами _GET u _POST!