Сегодня решил приступить к изучению php, но в блокноте почему-то слетает подсветка когда пишу > и эхо не выводится в браузере, хотя в блокноте я нажал кнопку "сохранить". Что тут за ошибка?
Ну, а собственно какая разница где писать, код очень примитивный? Вообще с любого блокнота должно запускаться. Я что-то не могу разобраться, почему код не компилируется в браузере. Локальный сервер установлен.
Только уберу символ >, подсветка появляется. Может обработчик не понимает символ > ? То есть может он не в той раскладке, например. Хотя, у меня выбран английский язык. Не пойму. Как будто он не понимает символа.
notepad++ синтаксис - P - PHP или Опции - настройки - раздел нев Докум - синтаксис по умолчанию пхп --- Добавлено --- еще плюшка в карму - не используй хвост лысого карло ?> если один лишь скрипт там
Не, ну интересно. А вот еще код PHP: <?php $bool = true; if ($bool) { $hi = 'Hello'; } echo $hi; ?> Это уже работает. В браузере пишет Hello
А что ты ждал в выводе? Если бы у тебя был включен вывод ошибок, то вывелись бы ошибки. Из кода Код (Text): <?php if($a>$b){ echo 'larger'; } ?> ничего кроме ошибки и не могло вывестись, поэтому ничего и не выводится. А и Б сидели на трубе...
Да уж, я по неопытности и прогавил, что код то действительно без смысла. --- Добавлено --- А как включить, чтоб ошибки выводились?
Для начала прочитать вот это. С этого многие начинали. И я в том числе, да. А потом и все остальные материалы на сайте. Там в паре-тройке мест есть устаревшая инфа, но ничего страшного. Так, например, не нужно использовать расширение mysql_ для работы с мускулём. Вместо него используйте mysqli_. И..пожалуй все. Все остальное там норм. P.S. Если у вас версия пхп 7+, то использовать mysql_ расширение вы не сможете физически, ибо выпилено нафиг.
Я пока учусь на версии 5. А почему в 7 версии нельзя использовать mysql_ расширение? А как взаимодействовать тогда с базой данных?
Потому что mysql_ это дырявое сито на костылях. И было удалено из PHP в 7 версии. Через расширение mysqli_. Оно есть в пятой ветке. Оно там давно уже есть. А mysql_ уже давно в пятой ветке выбрасывает исключения. Дай угадаю - на денвере каком-нибудь? Если да, то выкинь его нафиг и поставь себе хотя бы опенсервер, раз уж пока под виндой кодишь. Но, в идеале, виртуалочка нужна с линупсом на борту и ручками собранное окружение. Эти навыки очень пригодятся, когда купишь свой первый VPS и окажется, что в нем нет ничего. Порой даже апача или нжинкса может не быть. Голая система с дефолтным набором пакетов, до которой можно достучаться только по SSH.
Поясните это предложение, пожалуйста, я не понимаю. Хочу установить Минт, но пока на Виндовсе с Денвером. Для начала пускай так побудет. Пока не подводит, а дальше перейду на более современные платформы.
Virtual Box, поднимаешь виртуальную машину, на неё ставишь линукс и всё остальное. https://php.ru/forum/threads/howto-...hagam-i-s-kartinkami.58974/page-2#post-499114
Подводит. Исполни-ка там что-нибудь из современного PHP, будь добр. например: PHP: <?php $a = [1,2,3]; ?> или PHP: <?php $a = null; $b = $a ?? 1; ?> Ошибки синтаксиса, м? И это капля в море. В PHP произошли изменения работы логики некоторых вещей, к примеру. Это уже не так очевидно. В денвере по дефолту, в нормально работающей сборке, стоит PHP 5.1.2, если память мне не изменяет. Это версия 2006 года. Отстающая от php7+ на 11 лет. Одиннадцать. За это время уже целое поколение успело родиться и 5 классов школы закончить, телефоны стать поголовно сенсорными, а страна словить два тяжелых экономических кризиса.
Да, в первом примере пишет Parse error: syntax error, unexpected '[' on line 2, во втором Parse error: syntax error, unexpected '?' on line 3. Но честно говоря, я и сам пока не понял смысла ваших примеров. Как я понимаю, в первом, объявлен массив. Но что с ним делать не указали. Соответственно я б тоже на месте обработчика сказал бы "error". Второй пример тоже неясен "непонятный символ", как будто вы хотели написать оператор, но выбрали неправильный символ. Так что для меня пока подойдет старичок 2006 года. А когда стану продвинутым прогером (надеюсь), то перейду на семерку.
Пффф.. Когда это не использование перменной считалось ошибкой синтаксиса? Окей, а так? PHP: <?php $a = [1,2,3]; foreach ($a as $item){ echo ($item.<br>); } ?> Это 100% валидный код. Никаких неправильных символов в нем нет. Это называется "Null-коалесцентный оператор". Вещь, о которой я мечтал в PHP очень очень долго, к слову. Разгадка, почему он у тебя выдал ошибку синтаксиса проста: PHP 5.1.2 появился за 10 лет до появления этого оператора в PHP как такового. И в первом примере тоже просто новый синтаксис, более краткий и удобный. Который в 5.4 завезли, если мне память не изменяет. То есть уже давно. А в 5.1 не завезли. И если Null-коалесцентный оператор юзают не все подряд (потому что не знают, какая это волшебная прелесть), то вот краткий синтаксис объявления массивов а-ля JavaScript, уже прижился повсеместно, просто корнями врос. И код современный и примеры в интернете, скорее всего будут с ним. И он этот код будет у тебя падать. --- Добавлено --- +
Да уж, писать постоянно isset($_GET["parameter"]) ? $_GET["parameter"]: $parameter_default_value доставало жутно
Ну..поначалу ок. А потом ты изучаешь JS и привыкаешь к тамошнему var a = b || c. И все. Потом начинаешь хотеть такое же в PHP. А PHP так не умеет, потому что оператор || кастит результат к bool
А что означает тег p class в данном отрывке кода? Отсылки в css нет. Зачем это написано? PHP: if (empty($_POST['login_name'])) { print '<p class="error">Please enter your email address.</p>'; $okay = FALSE; } Это отрывок из формы регистрации.
Это не тег p class, это тег p, а у него есть атрибут class для CSS. Чтобы можно было без гемора взять и навесить стили в любой момент.