AirBitRage
В этой теме я буду выкладывать примеры своих поделок. Других новичков, которые так же только начали изучение PHP, призываю делать то же самоеЕдинственное требование, сюда выкладывайте только работающий код
Как именно он работает будем уже обсуждатьОпытные пользователи так же приглашаются для оценки наших «первых блинов». Развёрнутое мнение, с указанием на ошибки подсказками, приветствуется
Решение заняться изучением своего первого языка программирования было принято на прошлой неделе. Изучаю параллельно с работой и личной жизнью, потому об ударных темпах, думаю, речи не будет. На данный момент дошел до циклов, дальше функции.
- Итак, первая поделка. Создаю очерёдность языков которые планирую в итоге изучить. Из каждого типа выбираю один язык путём генерации случайного числа.
Языки глубокого уровня программирования
- С
- С++
Языки со строгой типизацией
- Java
- C#
- Kotlin
- SQL
Языки с динамической типизацией
- PHP
- Python
- Ruby
Языки для фронт энда
- JavaScript
- TypeScript
Код (Text):
<?php while (!(($a === ‘C’ ^ $a === ‘C++’) && ($b === ‘java’ ^ $b === ‘C#’ ^ $b === ‘Kotlon’ ^ $b === ‘SQL’) && ($c === ‘PHP’ ^ $c === ‘Python’ ^ $c === ‘Ruby’) && ($d === ‘JavaScript’ ^ $d === ‘TypeScript’))) { if ($i == 1) { $a=»C»;} else if ($i == 2) { $a=»C++»;} else if ($i == 3) { $b = ‘java’;} else if ($i == 4) { $b = ‘C#’;} else if ($i == 5) { $b = ‘Kotlon’;} else if ($i == 6) { $b = ‘SQL’;} else if ($i == 7) { $c=»PHP»;} else if ($i == 8) { $c=»Python»;} else if ($i == 9) { $c=»Ruby»;} else if ($i == 10) { $d = ‘JavaScript’;} else if ($i == 11) { $d = ‘TypeScript’;} $i = random_int(0, 13); } echo «Первый — $a<br/>».»Второй — $b<br/>».»Третий — $c<br/>».»Четвёртый — $d<br/>»; ?>
ADSoft
А если 100500 языков будет?
Все что повторяется более двух раз следует автоматизировать.Сделайте это же код без единого оператора if
ADSoft
Ну епт Не дал людям подумать..
MouseZver
Да без проблем !
PHP:
246172726179203d206578706c6f6465202820277 c272c2027437c432b2b7c4a6176617c43234b6f74 6c6f6e7c53514c7c5048507c507974686f6e7c527 562797c4a6176615363726970747c54797065536 3726970742720293b202320d09bd0b5d0bdd18c2 0d0b1d18bd0bbd0be20d0bfd0b8d181d0b0d182d1 8c20d0bcd0b0d181d181d0b8d0b20d0a0d0a7368 7566666c6520282024617272617920293b0d0a0d 0a666f72656163682028205b2027d09fd0b5d180d 0b2d18bd0b9272c2027d092d182d0bed180d0bed 0b9272c2027d0a2d180d0b5d182d0b8d0b9272c2 027d0a7d0b5d182d0b2d0b5d180d182d18bd0b92 7205d20415320246b6579203d3e202476616c756 520290d0a7b0d0a096563686f20227b2476616c75 657d3a207b2461727261795b246b65795d7d3c62 723e22202e205048505f454f4c3b0d0a7d
AirBitRage
Вот так?)
Код (Text):
<?php while (!(($a === ‘C’ ^ $a === ‘C++’) && ($b === ‘java’ ^ $b === ‘C#’ ^ $b === ‘Kotlin’ ^ $b === ‘SQL’) && ($c === ‘PHP’ ^ $c === ‘Python’ ^ $c === ‘Ruby’) && ($d === ‘JavaScript’ ^ $d === ‘TypeScript’))) { $i = random_int(0, 13); switch ($i) { case 1 : $a=»C»; break; case 2 : $a=»C++»; break; case 3 : $b = ‘java’; break; case 4 : $b = ‘C#’; break; case 5 : $b = ‘Kotlin’; break; case 6 : $b = ‘SQL’; break; case 7 : $c=»PHP»; break; case 8 : $c=»Python»; break; case 9 : $c=»Ruby»; break; case 10 : $d = ‘JavaScript’; break; case 11 : $d = ‘TypeScript’; break; default: break; } } echo «Первый — $a<br/>».»Второй — $b<br/>».»Третий — $c<br/>».»Четвёртый — $d<br/>»; ?>
roboformation
Массивы уже изучали?
PHP:
$langs = [ «Первый — « => [«C», «C++»], «Второй — « => [«Java», «C#», «Kotlin», «SQL»], «Третий — « => [«PHP», «Python», «Ruby»], «Четвёртый — « => [«JavaScript», «TypeScript»] ]; foreach ($langs as $order => $group) { }
ADSoft
Нда… Похоже подсказок не очень понимает,.. нельзя гвоздями — забьем саморезы.
Уже и ответ подсказали…
AirBitRage
Ещё нет. Сегодня начинаю функции и буду двигаться дальше. Может доберусь.
Кстати изучаю по этим видеоурокамЧто не понятно из уроков дополнительно гуглю.
Вы переоценили глубину познаний. Как писал выше, я ещё на стадии изучения языка и в создании этой поделки применял только известные на данный момент инструменты.
MouseZver
10:35 — обновим и….
Notice: Undefined variable: sum in … on line 15Говнокод
AirBitRage
Если запускаете на денвере замените random_int на rand.
У меня на убунте работает и так и так, а на денвере почему-то только c rand.Функции кажись понял
Код (Text):
<?php $froma = 1; $to = 11; roll ($from, $to); function roll ($a, $b) { while (!($l1 == true && $l2 == true && $l3 == true && $l4 == true)) { $z1++; $i = rand($a, $b); switch ($i) { case 1 : $l1 = ‘C’; break; case 2 : $l1 = ‘C++’; break; case 3 : $l2 = ‘java’; break; case 4 : $l2 = ‘C#’; break; case 5 : $l2 = ‘Kotlin’; break; case 6 : $l2 = ‘SQL’; break; case 7 : $l3 = ‘PHP’; break; case 8 : $l3 = ‘Python’; break; case 9 : $l3 = ‘Ruby’; break; case 10 : $l4 = ‘JavaScript’; break; case 11 : $l4 = ‘TypeScript’; break; default: break; } } echo «Количество итераций: $z1<br/>».»Первый язык — $l1<br/>».»Второй язык — $l2<br/>».»Третий язык — $l3<br/>».»Четвёртый язык — $l4<hr/>»; } ?>
MouseZver
Стоп…
Подожди дарагой…Прочти сначала этот текст:
А потом свой:
И расскажи нам, сладкий, к чему ты это написал ??
ADSoft
Денвер давно умер, не занимайтесь некрофилией
AirBitRage
С тобой всё ок? Я о фамильярности и нездоровой тяге к эпитетам.
Можно было и нормально объяснить.Код (Text):
<?php $a = «не»; $b = «будь»; $c = «таким»; $d = «душнилой»; while (!(($a === ‘C’ ^ $a === ‘C++’) && ($b === ‘java’ ^ $b === ‘C#’ ^ $b === ‘Kotlin’ ^ $b === ‘SQL’) && ($c === ‘PHP’ ^ $c === ‘Python’ ^ $c === ‘Ruby’) && ($d === ‘JavaScript’ ^ $d === ‘TypeScript’))) { $i = random_int(0, 13); switch ($i) { case 1 : $a=»C»; break; case 2 : $a=»C++»; break; case 3 : $b = ‘java’; break; case 4 : $b = ‘C#’; break; case 5 : $b = ‘Kotlin’; break; case 6 : $b = ‘SQL’; break; case 7 : $c=»PHP»; break; case 8 : $c=»Python»; break; case 9 : $c=»Ruby»; break; case 10 : $d = ‘JavaScript’; break; case 11 : $d = ‘TypeScript’; break; default: break; } } echo «Первый — $a<br/>».»Второй — $b<br/>».»Третий — $c<br/>».»Четвёртый — $d<hr/>»; ?>А что ещё живо?
ADSoft
для винды OpenServer
P.S — имеет ли смысл выкладывать какие-то поделки не изучив язык хотя-бы на 80%, хотя-бы основные возможности, структуры….Ерунда ж какая то получается…. не изучив умножение — будете показывать программу, которая сложением вычисляет 5*20, не изучив циклы — 100500 раз писать одно и то-же, не изучив массивы — одну из основополагающих структур почти в любом ЯП — пытаться реализовать их тоннами кода?
А некоторые «страждущие и ищущие» на форумах, не посмотрят что писал новичок.. типа — о работает… возьму себе… не понимая, что так не нужно делать.
….Может лучше не поделки будете делать а какие-то задачи на конкретные темы, изучив их предварительно и спрашивая вопросы — если появились таковые??
AirBitRage
Благодарю.
Если честно, таким образом я прорименяю изученный материал, чтоб лучше закрепился, конкретно сейчас целью не является написание эталонного кода. Разумеется если такой контент здесь не нужен и только мешает я могу упражняться «в стол».
Тут даже не знаю что ответит. Брать что попало не посмотрев даже на название темы или написанное жирным шрифтом в её начале…
К тому же roboformation показал прекрасный пример как ту же задачу нужно решать правильно. Я как раз прошел массивы и смог оценить его код (пусть он немного и отличается от того что был в обучении).Буду благодарен если посоветуете толковый ресурс с таковыми. Я здесь же нашел ссылку на https://www.codewars.com/ но там со старта задачи немного сложнее чем то с чем я сейчас могу справится.
Опять же повторюсь, язык я изучаю параллельно с работой и семъёй и уделять больше 1,5—2 часов в день не всегда получается. Если таким образом проходит весь материал без практики, уже к средине забуду то что изучал вначале.