PHP против ASP — В примерах, господа! PHP


Оглавление (нажмите, чтобы открыть):

PHP против ASP — В примерах, господа! PHP

PHP самый лучший язык для web программирования, а как насчёт других языков?

На самом деле, ASP сам по себе языком не является, это акроним для Active Server Pages, в действительности для программирования с ASP используется Visual Basic Script или JScript. Наибольшим недостатком ASP является то, что это частная система и по родному используется только на Microsoft Internet Information Server (IIS). Это ограничивает его доступность только для Win32 серверов. Существует пара проектов в работе, которые позволяют ASP выполняться в других окружениях и на других web серверах: InstantASP от Halcyon (коммерческий), Chili!Soft ASP от Chili!Soft (коммерческий). Считается, что ASP медленнее и более громоздкий чем PHP, а также менее стабильный. Некоторыми «за» для ASP является то, что так как в нём в основном используется VBScript, то подхватить язык относительно легко, если вы уже знаете как программировать в Visual Basic. Поддержка ASP по умолчанию включена в IIS, что упрощает его установку и зыпуск. Встроенные в ASP компоненты очень ограничены, поэтому если вам требуются «продвинутые» возможности, такие как взаимодействие с FTP серверами, вам придётся покупать дополнительные компоненты.

Да, для серверной стороны наиболее часто ссылаются на asp2php , также как и на вариант для стороны клиента .

В общем считается, что PHP быстрее и более эффективен для сложных программных задач и для пробования новых идей. Также на PHP обычно ссылаются как на более стабильный и менее требовательный к ресурсам. Cold Fusion имеет лучшую обработку ошибок, абстракцию баз данных и разбор дат, хотя в PHP 4 тоже уделено внимание абстракции баз данных. Другое, что перечисляется как одна из сильных сторон Cold Fusion, это его превосходная поисковая система, но отмечается, что поисковая система это не то, что должно быть включено в скриптовый язык для web. PHP работает почти на каждой существующей платформе, Cold Fusion доступен только для Win32, Solaris, Linux и HP/UX. Cold Fusion имеет хороший IDE и в общем в нём легче начинать, тогда как PHP вначале требует больше знаний по программированию. Cold Fusion был спроектирован в расчёте на не программистов, когда PHP сосредотачивается на программистах.

Замечательное сводка на эту тему от Майкла Дж. Шелдона (Michael J Sheldon) была опубликованна в списке почтовой рассылки для PHP. Копия может быть найдена на http://marc.theaimsgroup.com/?l=php-general&m=95602167412542&w=1 .

Наибольшее преимущество PHP перед Perl это то, что PHP был спроектирован для написания скриптов для web, в то время, как Perl был создан для более широкого круга задач и поэтому может быть очень сложным. С гибкостью/сложностью Perl проще писать код, который будет трудно читать другому автору/кодировщику. PHP имеет менее запутанный и более строгий формат без ущерба для гибкости. PHP проще интегрировать в существующий HTML, чем Perl. PHP имеет почти что все ‘хорошие’ функциональные возможности Perl: конструкции, синтаксис и так далее, не становясь таким же сложным, каким может быть Perl. Perl довольно испытанный и точный язык, он существует с конца восьмидесятых, но PHP зреет очень быстро.

Пред. Начало След.
PHP и COM Уровень выше Переход из PHP 2 в PHP 3

Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:

Основы работы с PHP

Учебник PHP

Практика

Важное

Регулярки

Работа с htaccess

Файлы, папки

Сессии и куки

Работа с БД

Практика по работе с БД в PHP

Перед чтением см. новые уроки раздела «Важное», которые появились выше.

Практика

Движок PHP

Продвинутые БД

Аутентификация

Практика

Введение в ООП

  • Урок №
    новая вкладка с new.code.mu
    Введение
  • Урок №
    новая вкладка с new.code.mu
    Свойства
  • Урок №
    новая вкладка с new.code.mu
    Методы
  • Урок №
    новая вкладка с new.code.mu
    Свойства и $this
  • Урок №
    новая вкладка с new.code.mu
    Методы и $this
  • Урок №
    новая вкладка с new.code.mu
    public private
  • Урок №
    новая вкладка с new.code.mu
    Конструктор
  • Урок №
    новая вкладка с new.code.mu
    Геттеры сеттеры
  • Урок №
    новая вкладка с new.code.mu
    Свойства только для чтения
  • Урок №
    новая вкладка с new.code.mu
    Один класс — один файл
  • Урок №
    новая вкладка с new.code.mu
    Объекты в массиве
  • Урок №
    новая вкладка с new.code.mu
    Начальные значения свойств в конструкторе
  • Урок №
    новая вкладка с new.code.mu
    Начальные значения свойств при объявлении
  • Урок №
    новая вкладка с new.code.mu
    Свойство из переменной
  • Урок №
    новая вкладка с new.code.mu
    Метод из переменной
  • Урок №
    новая вкладка с new.code.mu
    Метод сразу после создания
  • Урок №
    новая вкладка с new.code.mu
    Цепочки методов в классе
  • Урок №
    новая вкладка с new.code.mu
    Класс как набор методов
  • Урок №
    новая вкладка с new.code.mu
    Наследование классов
  • Урок №
    новая вкладка с new.code.mu
    Модификатор protected
  • Урок №
    новая вкладка с new.code.mu
    Перезапись методов родителя

  • Урок №
    новая вкладка с new.code.mu
    Перезапись конструктора родителя
  • Урок №
    новая вкладка с new.code.mu
    Передача по ссылке
    новая вкладка с new.code.mu
    . текст, код Клонирование объектов
  • Урок №
    новая вкладка с new.code.mu
    Использование объектов в другом классе
  • Урок №
    новая вкладка с new.code.mu
    Передача объектов параметрами
  • Урок №
    новая вкладка с new.code.mu
    Сравнение объектов
  • Урок №
    новая вкладка с new.code.mu
    Оператор instanceof
  • Урок №
    новая вкладка с new.code.mu
    Контроль типов
  • Урок №
    новая вкладка с new.code.mu
    Статические методы
  • Урок №
    новая вкладка с new.code.mu
    Статические свойства
  • Урок №
    новая вкладка с new.code.mu
    Объект со статическими свойствами и методами
  • Урок №
    новая вкладка с new.code.mu
    Константы класса
    новая вкладка с new.code.mu
    . текст, код Наследование и private
  • Урок №
    новая вкладка с new.code.mu
    . текст, код final
    новая вкладка с new.code.mu
    . в стек это Анонимные классы
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Полиморфизм

Абстрактные классы и интерфейсы

Трейты

ООП Магия

Практика

Практика: классы как набор методов

  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс ArrayConvertor
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс TagHelper
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс FormHelper
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс TableHelper
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс SessionShell
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс CookieShell
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс FileManipulator
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс databaseShell TODO cart корзина flash шаблонизатор роутер контроллер кеш логи фалидатор

Продолжение еще следует

  • .
    по ООП еще много уроков будет, дописываю

В этом уроке мы разберем работу с данными на языке PHP.

Данные — это объекты, которыми может оперировать PHP, к примеру, сообщение пользователя — это строка, а его возраст — это число. Данные могут быть разных типов.

Строки и числа

Самыми простыми типами данных в PHP являются строки и числа.

Числа обозначают сами себя, например 1, 12, 145, а вот строки требуется брать в кавычки (одинарные или двойные — без разницы):

Числа также могут быть дробями. Разделителем целой и дробной части служит знак «точка». К примеру, число 10.754 — это дробь.

Переменные

Одним из самых главных и распространенных объектов в программировании является переменная.

Переменная — это такой объект, который может хранить внутри себя различные данные, например, строки или числа.

Имя переменной должно состоять из английских букв: больших или маленьких, а также цифр и знака_подчеркивания.

В PHP перед переменной обязательно должен быть написан знак доллара $:

Операция присваивания

Очень важным элементом программирования является операция присваивания.

С помощью присваивания мы можем положить в переменную результат какой-либо операции, например, строку или число, а затем достать эти данные в нужном нам месте и воспользоваться ими.


Комментарии

К коде PHP, так же, как и в HTML и CSS, можно оставлять комментарии, которые будут проигнорированы PHP при выполнении программы.

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

Комментарии могут быть многострочными и однострочными:

Функции

В программировании есть такое понятие, как функции. В отличии от переменных, которые хранят внутри себя некоторые данные, функции выполняют операции над этими данными.

Функция отличается от переменной тем, что перед именем функции не ставится знак доллара (он нужен только для переменных), а также тем, что у нее после названия стоят круглые скобки ( ), внутри которых через запятую можно перечислять параметры.

Параметры — это данные (например, строки или числа), которые мы даем функции, она производит над ними какие-то операции и возвращает нам результат.

Например, в PHP есть стандартная функция sqrt(), которая параметром принимает число, а возвращает квадратный корень этого числа.

То есть, если ей передать число 9, вот так — sqrt(9), то на выходе получим число 3. Полученное число мы можем записать в какую-либо переменную или вывести на экран.

Давайте найдем корень из 25 и запишем в переменную $a:

Функция echo

В PHP существует специальная функция echo, которая позволяет вывести какой-либо текст в окно браузера. В отличие от других функций, после echo не требуются круглые скобки ().

Следующий код выводит на экран заданный текст:

А в следующим коде переменной $text присваивается фраза, а затем содержимое этой переменной выводится на экран:

Математические операции

В PHP между числами и переменными можно совершать различные математические операции: сложение (знак +), вычитание (знак -), умножение (знак *), деление (знак /).

Чтобы понять, как с ними работать, посмотрите на следующий пример:

Можно сначала записать числа в переменные, а потом уже проводить операции с переменными:

А можно также одновременно производить операции и с числами, и с переменными:

Специальные значения

В PHP, как и в других языках программирования, существуют ключевые слова для некоторых специальных значений.

Значения true, false

Значения true и false обозначают истину и ложь соответственно. Они используются для таких вещей, которые предполагают два варианта ответа — да или нет.

К примеру, на вопрос ‘вам уже есть 18 лет?’ в можете ответить да, то есть true, или нет, то есть false.

Эти значения называются логическими.

Значение null

Значение null обозначает ‘ничего’. К примеру, если мы попробуем обратиться к переменной, которой мы еще не задали значение — то ее значение и будет null.

Функция var_dump

Бывают ситуации, когда нам нужно посмотреть содержимое переменной, чтобы понять, почему наш код работает не так, как мы хотели. Обычно на помощь приходит функция echo, однако, бывают ситуации, когда echo не работает.

Например, если переменная является пустой строкой », то выведя ее содержимое на экран с помощью echo, мы ничего не увидим.

Вторая ситуация — когда переменная содержит строку с пробелами по краям, например:

Для решения описанных выше проблем следует использовать функцию var_dump(), которая предназначена для отладки кода и позволяет выводить значения переменных и их тип.

С помощью этой функции мы можем увидеть, что переменная пуста, можем подсчитать количество пробелов по краям строки, можем увидеть, что переменная логическая и имеет значение true или false (об этих значениях чуть позже).

Пример использования var_dump():

PHP внутри HTML

PHP код можно вставлять внутрь HTML кода:

Сложение строк в PHP

В PHP, в отличие от многих других языков, строки складываются с помощью знака «точка»:

Получение определенного символа строки

В PHP можно получить доступ к определенному символу строки по его номеру таким образом: $a[n] – n-ный символ строки (учтите, что нумерация идет с нуля):

Сложности с операцией присваивания

Очень часто новички не понимают, что присваивание отличается от обычного равенства. Посмотрите следующий пример:

С точки зрения математики запись $a = $a + 2 абсурдна, но не с точки зрения программирования.

В данном случае переменная $a имела значение 1, а затем мы переменной $a присвоили новое значение — старое значение переменной $a плюс 2.

Операции инкремента и декремента

Операция $a++ или ++$a – увеличивает переменную $a на единицу. Эта операция называется инкремент.


Операция $a— или —$a – уменьшает переменную $a на единицу. Эта операция называется декремент.

Давайте посмотрим, в каких случаях проявляется разница между ++a и a++.

Пусть у нас есть код echo ++a и код echo a++.

В первом случае переменная сначала увеличится на единицу, а потом выведется, а во втором случае — сначала выведется, а потом увеличится.

Операции +=, -=, *=, /=

Мы уже рассматривали код, который демонстрирует сложности с операцией присваивания:

В данном случае мы присваиваем переменной $a ее текущее значение, увеличенное на 2. Однако PHP позволяет записать этот код еще короче с помощью оператора +=:

Мастер Йода рекомендует:  HTTP2 предыстория, преимущества производительности и реализации

Кроме того, существуют операторы -=, *=, /=, которые эквивалентны следующему коду:

Операция .=

Существует также операция .=:

Типизация переменных

Что будет, если попробовать сложить, к примеру, число и строку, вот так: 3+’3′? В результате вы получите число 6. Это значит, что PHP автоматически осуществляет преобразование типов при необходимости, вам не нужно за это переживать.

То же самое случится, если, к примеру, сделать так: 3+true или 3+false. Попробуйте эти примеры сами и узнайте к чему преобразуется true в этом случае, а чему — false.

Что вам делать дальше:

Приступайте к решению задач по следующей ссылке: задачи к уроку.

Когда все решите — переходите к изучению новой темы.

ASP.net против PHP (что выбрать)

Мне было поручено разработать новое веб-приложение. Это своего рода социальные веб-приложения, для понимания вы можете сказать, что это похоже на facebook. Теперь, прежде чем приступать к разработке такого огромного приложения, я задаю несколько вопросов:

  • Во-первых, имеет ли инструмент и язык программирования влияет на производительность сети приложение?

Например, я сделал две веб-страницы с одинаковым содержимым, единственное отличие состоит в том, что одна страница сделана в ASP.net(с С#), а другая — на PHP, теперь какая страница открывается быстрее в конце пользователя? Единственная цель задать этот вопрос заключается в том, что я хочу выбрать один язык, который быстрее от предполагаемого пользователя.

  • То же самое происходит с базой данных i необходимо выбрать определенную базу данных или я могу использовать любую базу данных по моему выбору, в настоящее время я рассматриваю:

1.MS SQL Server
2.MY SQL и
3.Postgres

Это невозможно ответить, и до этого было поднято много много раз. Сделайте поиск, прочитайте эти потоки, затем выберите структуру, с которой вы и ваша команда имеете опыт.

Вы можете иметь большой успех и отличную производительность в любом случае. MSDN запускается из ASP.NET, поэтому вы знаете, что он может хорошо работать. PHP работает с множеством лучших веб-сайтов в мире. То же самое можно сказать и о базах данных. Вам действительно нужно выбирать на основе ваших навыков, навыков вашей команды, возможных конкретных функций, которые вам нужны/хотят, чтобы они делали лучше, чем другие, и даже на серверах, которые вы хотите запустить на этом сайте.

Если бы я строил его, я бы наклонился к PHP, потому что, вероятно, все, что вы хотите сделать, было сделано раньше (с примерами кода как), и потому, что хостинг намного проще получить (и дешевле, потому что у вас нет вопросы лицензирования для решения по сравнению с Windows-хостингом). По той же причине я бы выбрал и MySQL. Это отличная платформа базы данных, и цена правильная.

Как мне вставить php в asp?

07.02.2010, 09:20

Где и как мне можно бесплатно разместить гостевую.ASP
Где и как мне можно бесплатно разместить гостевую.ASP и посмотреть как она работает. Заранее.

Как вставить перловый скрипт в ASP?
Как вставить перловый скрипт в ASP не работает. ХЭЛП, ПЛИЗЗ, УМИРАЮ. 🙁

Как вставить картинку из ASP в EXCEL ?
Проблема Делаю выборку из базы MSSQL. в одном из полей находится фото. Фото вывожу файлом.

Как в ASP вставить результат выполнения прогр., как SSI?
Т.е. не писать программу в самом теле страницы, у меня прога скомпилированная, результат работы её.

Как вставить текстовый файл в ASP как код.
Соственно проблема в следующем. У меня есть Жаба Скрипт, который строит дерево каталога на.

.NET & ASP vs PHP

Ранее сегодня я спросил, было бы неплохо разработать веб-сайты с использованием C #. Большинство ответов указывали на .NET и ASP. В настоящее время я разрабатываю PHP. Я работал с Python и RoR, но я всегда возвращаюсь к PHP. Это первый раз, когда я просмотрел .NET и ASP. В результате загрузки Google загрузки Google я больше не вижу поддержки ASP в Интернете, но потом все это кажется немного предвзятым по отношению к PHP / Apache / MySQL.

Похоже, здесь очень много людей из .NET и ASP, поэтому я решил, что стоит задуматься о том, чтобы внести свой вклад, пытаясь попытаться найти баланс в моей голове. Не все могут быть плохими.

Какие преимущества существуют для .NET и ASP над PHP?

asp.net vs php site: stackoverflow.com

в поиске Google и получил:

ASP.NET против PHP

Использование PHP vs ASP.net

PHP MVC (Symfony / Zend) против ASP MVC против Spring MVC против Ruby on Rails?

Карьера с PHP или ASP.NET?

Я бы сказал, это зависит от вашего фона и от того, сколько денег вам нужно бросить. У ASP.net есть несколько отличных функций, но вы, возможно, даже не нуждаетесь в них в зависимости от вашего проекта. Инструменты дороги, хостинг дорог.

PHP отличный, потому что вы получаете много бесплатно, но есть компромиссы.

Лично мне нравится .NET лучше, потому что это то, с чем я начинал, я чувствую, что могу делать больше с меньшими затратами, но это личное предпочтение. Я уверен, что некоторые разработчики vet php чувствуют то же самое.


Посмотрите на Phalanger. Это PHP, работающий на .NET Framework и за последние несколько месяцев добился огромных успехов. Определенно стоит исследовать при выходе из PHP.

Я пришел из фона в Perl / CGI, Classic ASP и ASP.NET. Я решил заняться PHP, чтобы понять, почему существует такое огромное количество. Я чувствую, что сделал шаг назад в языковой шкале и предпочел бы код в .NET или Perl.

Я думаю, что Джефф Этвуд подгонит меня к этому.

Вот почему вы должны продолжать использовать PHP:

php7 ASP.net против PHP(что выбрать)

asp.net или php (3)

Вы можете иметь большой успех и отличную производительность в любом случае. MSDN запускается из ASP.NET, поэтому вы знаете, что он может хорошо работать. PHP работает с множеством лучших веб-сайтов в мире. То же самое можно сказать и о базах данных. Вам действительно нужно выбирать на основе ваших навыков, навыков вашей команды, возможных конкретных функций, которые вам нужны / хотят, чтобы они делали лучше, чем другие, и даже серверов, которые вы хотите запустить на этом сайте.

Если бы я его строил, я бы склонялся к PHP, потому что, вероятно, все, что вы хотите сделать, было сделано раньше (с примерами кода как), и потому, что хостинг намного проще получить (и дешевле, потому что у вас нет проблем с лицензированием по сравнению с хостингом Windows). По той же причине я бы выбрал и MySQL. Это отличная платформа для баз данных, и цена правильная.

Мне было поручено разработать новое веб-приложение. Это своего рода социальные веб-приложения, для понимания вы можете сказать, что это похоже на facebook. Теперь, прежде чем приступать к разработке такого огромного приложения, у меня возникает несколько вопросов:

  • Во-первых, влияет ли инструмент и язык программирования на производительность веб-приложения?

например, я сделал две веб-страницы с одинаковым содержимым, единственное отличие состоит в том, что одна страница сделана в ASP.net (с C #), а другая — в PHP, теперь какая страница открывается быстрее в конце пользователя? Единственная цель задать этот вопрос заключается в том, что я хочу выбрать один язык, который быстрее от конечного пользователя

  • То же самое происходит с базой данных, мне нужно выбрать определенную базу данных, или я могу использовать любую базу данных по своему выбору, в настоящее время я рассматриваю:

1.MS SQL Server
2.MY SQL и
3.Postgres

Есть несколько тем, которые могут дать вам ответ. Вы также можете запустить некоторые тесты самостоятельно. Не слишком усложняется, чтобы запустить некоторые циклы и добавить таймер для вычисления времени выполнения 😉

Это невозможно ответить и много раз поднимали. Сделайте поиск, прочитайте эти потоки, затем выберите структуру, с которой вы и ваша команда имеете опыт.

ASP.NET MVC или PHP YII. Сравнение производительности

Я член freelance команды AdvanceDev и к нам очень часто обращаются заказчики с просьбой разработать сайт или срм, именно на php. Если мы предлагаем разработку на asp.net, то в ответ слышим множество необоснованных аргументов против asp.net и в пользу php.

В данной статье я хочу разобраться с наиболее часто приводимым аргументами против asp.net. Стоит отметить, что тут и везде, под asp.net подразумевается asp.net mvc, а не asp.net web-forms. Это две разные технологии, как груша и яблоко, путать их между собой не стоит.

Я ни в коем случае не хочу умалить достоинства php, моя цель — доказать, что asp.net не хуже.

И так, самые распространенные «причины» по которым заказчики не хотят иметь сайт или систему на asp.net

Asp.net устарел, а php это передовые технологии

Это совершенно не так. PHP был разработан в 1994 году и предназначался для разработки небольших сайтов. PHP — Personal Home Page, что в переводе означает Персональная Веб Страница. С тех пор php сильно вырос, последняя версия PHP 5.6 была выпущена летом 2014 года.

ASP.NET MVC был разработан в 2007 году и выпущен в открытое использование в 2009 году. Последняя версия asp.net mvc 5.2.2 вышла летом 2014 года.

Из сказанного выше можно сделать вывод, что asp.net mvc это более современная технология, тем не менее, обе технологии поддерживаются и развиваются с одинаковым темпом.

Для php есть множество программистов, которые смогут взять сайт в любой стадии и продолжить над ним работу. В то время как asp.net программистов очень мало

Для решения этого вопроса нужно четко определить, кто входит в разряд «программистов». Если asp.net и php изобразить картинкой, то результат будет примерно такой:

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

Базовые знания php освоить проще, чем asp.net, поэтому все, кто хоть немного знают php, рекламируют себя как «php программист». Когда же доходит до разработки серьезных вэб-сайтов или вэб-систем, такие программисты проваливают сроки, сливаются и пропадают со связи.

К нам очень часто обращаются заказчики с просьбой «доработать сайт на php, так как его создатель не может сделать эту функцию» или «переработать сайт на php, так как он работает очень медленно и с ошибками, а его создатель получил деньги и пропал со связи». Но еще ни разу не было случая, когда к нам обратились с подобной просьбой для asp.net сайта.

На самом деле, программистов высокого уровня на php и на asp.net примерно одинаково. Очень часто квалифицированные программисты умеют программировать и на php, и на asp.net.

Любой программист, у которого есть пару лет опыта работы и несколько реализованных больших проектов и на php, и на asp.net mvc скажет, что в php не хватает множества полезных функций, которые упрощают и ускоряют разработку сайта или веб-приложения.

Для работы asp.net сайта нужен дорогой сервер, на обычном хостинге сайт работать не будет

Еще одно заблуждение. Цены на хостинг для php и asp.net не отличаются. Вот пример: http://www.1gb.ru/, даже самый минимальный тарифный план «Стандарт» уже поддерживает asp.net, а всего за 274р в месяц можно получить и MS-Sql Server, любой необходимой версии.

Для большого сайта, будь то php или asp.net придется арендовать виртуальный или реальный сервер, цены на сервера не отличаются.

Для php предпочтительней использовать операционную систему Linux, она бесплатна. В случае необходимости, php сайт можно с легкостью перенести на Windows сервер.

Windows это родная и предпочтительная операционная система для asp.net. Однако asp.net так же может работать и под Linux, с некоторыми ограничениями.

Стоимость покупки пожизненной лицензии:

  • Windows 2008 R2 — от $250
  • Windows 2012 R2 — от $500

Из-за того, что в php не хватает множества возможностей, которые есть в asp.net, разработка на php выходит дольше, а следовательно дороже, чем на asp.net. Из нашей практики, цена одного и того же проекта на php и asp.net отличается в 1,5-2 раза.

Небольшой расчет по проекту:

ASP.NET MVC + Windows + MS-Sql Server

  • Разработка системы — $2000
  • Операционная система — $500
  • MS-Sql Server — бесплатная версия
  • Итого $2500

PHP YII + Linux + MySql Server


  • Разработка системы — $3000
  • Операционная система — $0
  • MySql Server — бесплатная версия
  • Итого $3000

Как видим, разработка одной и той же системы на php обходится дороже, чем на asp.net, даже с учетом покупки лицензии Windows. Если вас не устраивает бесплатная версия MS-Sql Server, то всегда можно использовать MySql Server. MySql отлично работает под Windows.

Если же принять во внимание не только деньги, а еще сроки разработки и скорость работы приложения, то asp.net будет иметь еще более явное преимущество над php.

Сайт написанный на asp.net работает медленней чем php вариант и начинает еще больше тормозить с приростом количества пользователей

Наверное, самая большая причина, из-за которой заказчики «боятся» asp.net. Устаревший asp.net действительно тормозит и потребляет много ресурсов. Но asp.net и asp.net mvc это разные технологии, путать их между собой нельзя! Очень часто, php программисты не имеют никакого представления о том, что такое asp.net mvc и как эта технология работает, судят только по названию и утверждают, что asp.net mvc устарел и уступает php по всем параметрам.

Я провел тестирование производительности php и asp.net mvc под Linux и Windows. Для тестирования был создан небольшой сайт, в котором есть набор продуктов, набор заказчиков, набор заказов и набор позиций заказа. Всего четыре сценария тестирования.

На всех диаграммах, справа указано время в секундах, снизу указано кол-во пользователей сайта. Для удобства чтения я сократил некоторые название:

  • win – windows
  • asp.net – asp.net mvc
  • ms-sql – ms-sql server
  • mysql – mysql server

1. Импорт из текстового файла

Есть файл в котором находится список заказчиков. Необходимо прочитать данные из файла, отсортировать по алфавиту, найти кол-во гласных букв в имени заказчика и вывести результат пользователю.

Как видно из результатов тестирования, в данной задаче asp.net под windows несущественно уступает php под linux при небольшом кол-во пользователей и значительно опережает конкурента при большом количестве пользователей.

Несравнимо плохой результат показывают php под windows и asp.net под linux.

2. Экспорт в excel из базы данных

Необходимо выбрать всех заказчиков из базы, отсортировать по алфавиту, сохранить в excel файл и отдать пользователю ссылку для скачивания файла.

Во всех тестах побеждает asp.net mvc под windows в связке с ms-sql server, для выполнения той же задачи php под linux + mysql потребовалось более чем в два раза больше времени.

Почти такой же результат показала связка asp.net mvc под windows + mysql, тогда как asp.net под linux + mysql опережает php, но не на много. Связка php под windows + mysql еще раз очень сильно отстает.

3. Выборка и отображение товаров из базы

Поиск товаров по категории и части названия. Результат отобразить пользователю в виде таблицы.

И тут asp.net опережает php в любой связке. Стоит ометить, что mysql кэширует результат запроса и не выполняет одинаковый запрос несколько раз, если не было изменений в базе. Из-за этого mysql опережает ms-sql в данном тесте. Если вручную сделать кэширование для ms-sql, то результаты будут примерно одинаковыми.

4. Оформление заказа

Выбрать случайного клиента. Создать для него заказ. Набросать в заказ десять случайных товаров. Сохранить данные и вывести пользователю на экран информацию о покупателе и список товаров.

Мастер Йода рекомендует:  Конические градиенты в CSS3

В последнем тесте, связка asp.net mvc под windows + ms-sql с большим отрывом опережает все остальные варианты. Почти в два раза отстает php под linux + mysql, asp.net + mysql под windows и linux показывает неплохой результат, а php под windows и тут очень сильно отстает.

Средняя производительность по четырем тестам

Не трудно заметить, asp.net + ms-sql опережает php + mysql при любом количестве пользователей и чем больше пользователей, тем сильнее этот отрыв.

asp.net + mysql показывает примерно такой же результат как и php + mysql, но все же вырывается вперед,
asp.net + mysql под linux немного отстает от windows версии,
а php под windows работает так медленно, что его нет смысла даже показывать.

Все тесты проводились на одном и том же компьютере. Во время тестирования не была запущена ни одна лишняя программа. Каждый тест был запущен четыре раза и взят средний результат.

Тестирование проводилось под:

  • ASP.NET MVC 4, .NET 4.5
  • PHP 5.6 YII2
  • Windows 8, IIS8, MS-SQL Server 2012 Express, MySql 5.5
  • Ubuntu 14.10, Apache2, MySql 5.5
  • Ubuntu 14.10, Nginx + fastcgi-mono-server4, MySql 5.5
  • CPU: AMD Phenom II 965 x4
  • RAM: 4gb RAM
  • HDD: WD 1T

И в заключении хочу привести несколько примеров успешного использования asp.net mvc в огромных проектах.

  1. http://stackoverflow.com/ — форум для программистов и не только. Около миллиона посетителей в день.
  2. http://dearsystems.com/inventory-software/ — популярная в Австралии и США СРМ система складского учета.
  3. http://www.asp.net/ — сайт по asp.net.
  4. http://live.com/ — популярный почтовый сервер и не только.
  5. http://www.documentoved.ru/ — Документовед, онлайн-сервис оформления документов.

Тут можно посмотреть статистику развития и популярность asp.net mvc
https://www.similartech.com/technologies/asp-net

Что за бред я только что прочитал? Автор, ты действительно веришь в то, что написал?

«Старый ASP.NET медленее PHP о_О А MVC это же совсем другое дело, он намного быстрее» а ничего, что старый ASP.NET и ASP.NET MVC отличаются в этом плане совсем незначительно и показывают на простейших операциях примерно одинаковые результаты?

Разработка сайта на ASP.NET дешевле чем PHP? Разработка сайта с нуля на ASP.NET MVC выходит дороже, чем на ASP.NET WebForms и гораздо дороже, чем ПХП+CMS(которых под него огромное количество).

Правда в том, что 90% клиентов достаточно сайта на WordPress (именно на нем, а не на PHP). А вот сложные веб-приложения действительно лучше разрабатывать на ASP.NET MVC или WebForms в зависимости от того, что требуется.

Арам, большое спасибо за авторитетное мнение без каких-либо оснований и фактов. Верить или не верить можно в что-то не проверенное, а я всего лишь излагаю информацию, основываясь на факты. Если сравнивать простейшие операции, почему тогда не написать сайт в виде c++ cgi, ведь будет еще быстрее? Очевидно, что речь идет о больших системах. На asp.net webforms можно написать быстрый сайт, но придется уходить от концепции и делать гибрид между webforms & mvc. Если брать во внимание сайты-визитки и блоги, то тут php будет выгодней. Но любой, мало-мальски толковый проект, с небольшой порцией сложной логики ставит эти cms в тупик. У меня есть больше дюжины заказчиков, которые «испугались» моей цены и обратились к «php умельцам». Получили сайт на какой-то cms (WordPress, OpenCart, Joomla) и были довольны, но не долго. Через месяц или два, в голову приходит «феноменальная» идея, которую php умелец не может реализовать в силу ограничений cms, либо это будет очень дорого. В результате заказчик выкидывает php сайт и обращается ко мне. 90% чьих клиентов? 90% моих клиентов заказывают сложную crm систему ценой от 3000$, поэтому не стоит кричать во все стороны, что WordPress спасет web-мир.

Const, окей, давайте поговорим о фактах. В вашей статье я увидел результаты тестов с простейшими операциями. Но на их основании Вы делаете выводы и о сложных системах.

Я сам часто доделываю эти недосайты от недопрограммистов (которые научились устаналивать CMS и плагины и решили, что уже умеют делать сайты) и я не люблю PHP (хотя при достаточном уровне можно и на нем написать что угодно).

Скорость работы приложения не всегда является самым важным критерием. Например, если говорить о скорости работы, то крупные распиаренные ORM (EF, NHiberbnate) заметно уступают прямому доступу к БД, но это не мешает их использовать в том же ASP.NET MVC. Вы, кстати, что используете у себя?

Теперь о том, что я назвал бредом:

Статья о сравнении производительности ASP.NET MVC и PHP YII, а в итоге сравниваете просто ASP.NET и PHP.


ASP.NET WebForms никогда не был медленее PHP. Как минимум 10 лет назад, когда я начинал с ним работать, он был быстрее, удобнее и надежнее.

Скорость работы приложения ASP.NET MVC и ASP.NET WebForms при равном уровне профессионализма разработчиков почти одинаковая, потому что они обе используют один и тот же стэк технологий. Естественно, если Вы не умеете работать с WebForms, то ваше приложение будет работать медленно и жрать много ресурсов. При этом скорость разработки на WebForms как правило выше (исключения, естественно бывают).

90% клиентов, которым нужны веб-сайты. Хотеть они могут много чего, но на самом деле им нужны сайты-визитки со стандартными плагинами и разным дизайном. И WordPress лидер в этой области. Раз уж мы говорим о достаточно узком круге клиентов, которым нужна разработка CRM (и по каким-то причинам уже готовые продукты их не устраивают), то стоило об этом написать в заголовке статьи. И да, о том, что сложные проекты лучше писать на ASP.NET MVC я тоже написал.

Арам, спасибо за адекватный ответ. Я постарался сделать более-менее большую базу данных и не совсем уж примитивные сценарии тестирования. К сожалению, у меня нет возможности написать две идентичные crm на asp.net mvc и php yii, чтобы сравнить их производительность. Если у Вас есть такая возможность, то буду рад за предоставленную информацию. Тут нигде не написано, что скорость – самый важный фактор, что asp.net mvc хуже/лучше php или что-то в этом роде. Я собрал аргументы, которые приводят заказчики в пользу php yii и против asp.net mvc, затем опроверг их. Все.

  1. В самом начале я написал, что под asp.net подразумеваю именно asp.net mvc, php yii был взят из-за того, что очень много заказчиков убеждены, что это вершина возможностей и использовать нужно именно yii.
  2. Сам по себе asp.net WebForms не медленней. Проблема в том, что сама концепция оказалась очень ресурсоемкой и большинство программистов все спихивали на framework, в результате чего, сайт жутко тормозил, мне пришлось перерабатывать не один такой сайт. На asp.net WebForms можно создать хороший сайт, даже на чистом asp можно. Но на эту тему нужно писать отдельную статью.
  3. Согласен. Но как я уже писал выше, чтобы избавиться от пожЕрательства ресурсов, нужно делать гибрид с mvc, что выходит совсем не быстрее.
  4. Опять согласен. Но статья именно про разработку сайта или приложения с нуля. В самом начале я написал: «. обращаются заказчики с просьбой разработать сайт. «, именно разработать сайт, а не создать клон WordPress. Возможно, это не очевидно, мой косяк.

Статью каждый понимает с учетом своего опыта работы в YII/ ASP NET MVC Когда-то часто сталкивался с подобными вопросами, и перерывал весь инет в поисках статьи, где в одном месте было бы изложены за и против + с «фактами», спасибо. А за статистику автору отдельное спасибо!

От себя же сказу, часто сталкиваюсь с тем что надо с C# WPF (использую паттерн MVVM), т.е. десктопного приложения, перенести функционал в web. И здесь уже вопросов не стоит на чем писать, (silverlight не рассматриваем). Поэтому выбор падает только на ASP.NET MVC.

Арам, человек потратил время, написал интересную статью, а вы в лоб «Что за бред я только что прочитал?». Вы напишите свою статью, чтобы так говорить. Но не это главное, ведь есть еще те, кто ничего не понимают еще, и кому подобная статья очень важна — и возможно стоят перед выбором ASP.NET MVC/YII, но читают такой отзыв, и закрадывается, что статья бредовая, хотя на деле (и по «фактам») наоборот.

Ollon, не знаю вашего имени, но спасибо за хороший отзыв, рад что статья понравилась.

На самом деле, ASP.NET (и MVC и WF) всегда будет быстрее, чем php по той причине, что, во-первых, это компилируемый код (т.е. программа выполняется процессором, а не интерпретируется), во вторых, .NET — это JIT-компиляция, компиляция «на лету» (при первом запуске программа компилируется из IL в код, понятный данному процессору, при последующих запусках она уже работает быстрее и оптимальнее для данного процессора). Примерно то же самое можно сказать о Java VM. А PHP код постоянно интерпретируется при каждом обращении. Даже всем известный фэйсбук, написанный когда-то на PHP, сейчас имеет «ядро», написанное на Си, а PHP в нём используется только как шаблонизатор.

Mike, полностью согласен. Но заказчикам, которые прочитали, что Yii, CakePhp, OpenCart, Joomla, WordPress и иже с ними, такие хорошие, все умеют, все делают и при этом совершенно бесплатно, объяснить, что такое JIT и компиляция невозможно.

Зачем спорить, что лучше, а что хуже. Лучше выучить оба языка и не париться, все же заказчик определяет на чем программировать а не мы программисты. Мне лично легче на ASP.NET MVC, но приходиться писать и на PHP.

Анвар, как раз для того чтобы реже писать на PHP и чаще на ASP.NET, и была написана эта статья.

Добрый день! Если продолжите исследования в этой области, очень много людей будет благодарно. По тому что надоело делать два варианта и потом слышать от заказчиков увидевших разницу в производительности:». удивительно, а нам же говорили что PHP быстрее».

SunnyRitter, добрый день!

К сожалению, сейчас нет возможности заниматься исследованием asp.net и php, так как я работаю в http://www.starcounter.com/. Starcounter позволяет разрабатывать web системы нового поколения. Ознакомиться с технологией можно тут http://starcounter.io/. Если будут какие-то вопросы, можно задавать их лично мне.

Оч. понравился aps.net mvc с точки девелопера. Приятная ide (vs) + много фишечек от mvc ето круто.

Хочется узнать о хостингах asp.net mvc которие ви считаете хрошими по цена\качество. Например хостинг для небольшого блога на aps.net mvc5\6 и хостинг например для большого сайта, допустим с базой фильмов, актеров итд итп на 1м фильмов.

Что би ви посоветували или где искать, так как я только учу aps.net, очень нравится, и хочеться би узнать где би захостить чтото) не оч. дорого

Dimon, привет.

  • Я пользуюсь услугами хостинга http://www.1gb.ru/, мой сайт тут размещен.
  • И еще арендую сервер в Германии: https://www.hetzner.de.

Автор пишет: «Устаревший asp.net действительно тормозит и потребляет много ресурсов. Но asp.net и asp.net mvc это разные технологии, путать их между собой нельзя!»

Здесь я с ним не согласен ASP без приставки Net, да устаревший, тормознутый (т.к. интерпритируемый) и потребляет много ресурсов. ASP.Net это новая технология. ASP.Net MVC это фреймворк который включен в ASP.Net. ASP.Net это технология, ASP.Net MVC это подход для использования ASP.Net. Всетаки в статье лучше поправить где ASP, а где ASP.Net.

По поводу стоимости разработки полностью солидарен с автором. В Интернете есть статьи где аргументом в пользу использования PHP выдвигают, то что его используют Google, Facebook и другие гиганты, да используют, но то сколько зелёных они потратилита на то чтоб заставить «бесплатный» PHP работать быстрее (за счет вынесения логики на C) упоминуть забыли.

Был у меня как-то довольно интересных опыт: Требовался сайт для автоматизации бизнес процеса в компании для её решения был необходим еще один программист, на чём писать был в замешательстве мог на ASP.Net(к чему и склонялся) и на PHP, ранее эту задачу дали PHP программисту, по неизвестным причинам он её не смог сделать, бюджет начальство не интересовал, но в рамках разумного. Начали искать программиста по обоим направлениям, PHP программисты приходили говорили что без WordPress или Joomla писать не будут, все были с порфолио с десатками сайтов, т.е. не дураки. В конечном итоге взяли .Net программиста без опыта и сделали работу за 2 месяца на ASP.net WebForms. Позже начальство нам поставило задачу заставить работать оборудвание по командам с сайта, и радости моей не было предела т.к. я смутно представлял как это реализовать на PHP и реально ли это. ASP.Net работает с Windows, оборудование работает с Windows. Без танцев с бубном сделали и это. Я это к тому что все таки надо подбирать инструмент под задачу. И что людей знающих PHP на довольно приличном уровне не так много как кажется.

Michael, согласен с вами.

asp.net mvc, как и asp.net web forms, это технологии разработки сайтов на asp.net.

Говоря asp.net, я подразумеваю asp.net web forms. При появлении asp.net была только одна технология — web forms, mvc — появился позднее. Согласен, что это не очень корректно.

Автор во многом все же прав. На ASP.NET MVC также быстрее и легче создаются сложные мультимедийные и графические web-ресурсы. В этом пришлось недавно убедиться на примере популярного за рубежом SDK LEADTOOLS (https://www.leadtools.com/).

Здравствуйте, набрел на вашу статью, изучая и сравнивая PHP и ASP.NET MVC. Как Вы считаете, есть ли в ближайшем будущем перспектива у ASP.NET MVC стать часто используемым языком в вебе, как php, при разработки Не корпоративных проектов, а любого вида сайтов, CMSок и тд? Смотрел на вакансии — чистых asp.net mvc веб-разработчиков очень мало требуется в Москве, даже front-end на порядок больше. Хочу развиваться как веб-разработчик, приоритет отдаю asp.net, тк знаю преимущества среды разработки и сервера MSSQL. Хотелось бы понять будет ли перспектива найти работу на asp.net в разработке всевозможных CMS, интеренет-магазинов (все что в основном написано сейчас на php), а не корпоративных решений?

puga1chev, здравствуйте.

В России PHP имеет такую большую популярность из-за видимой бесплатности. Если вы еще не знаете, что ASP.NET 6 (vNext) тоже бесплатный и с открытым кодом, то советую почитать. Уже выпущен Release Candidate, есть поддержка Windows, Linux, OSX. Поэтому, я не думаю, а знаю, что популярность ASP.NET будет расти и расширяться.

В любом случае, я считаю, что любой уважающий себя разработчик, должен ориентироваться именно на корпоративные решения, а не на болото из множества бесплатных CMS.

Const, рад был это услышать.

30+ лучших приемов PHP для начинающих

Дата публикации: 2010-04-14

От Автора: PHP – самый широко используемый в Сети язык программирования. Представляем тридцать с небольшим лучших приемов для новичков, желающих приобрести основные навыки — php для начинающих.

1. Подружитесь со справочником по PHP

Если вы новичок в PHP, значит, пришло время познакомиться с внушающим почтение справочником PHP. Справочник по PHP невероятно исчерпывающий и содержит действительно полезные комментарии к каждой статье. Перед тем, как задавать вопросы или пытаться самостоятельно разрешить проблему, сэкономьте время и просто возьмите курс на справочник. Ответы на ваши вопросы уже удобно разместились в полезной статье на сайте PHP.net.
В данном случае мы Вам рекомендуем поискать самостоятельно справочники на русском языке, лучше php для начинающих. Будем рады, если Вы дадите ссылке на полезные справочники в комментариях к статье (Просто учитывайте, что это перевод статьи).

2. Включите отчет об ошибках

Отчет об ошибках в PHP очень полезен. Вы обнаружите ошибки в своем коде, которых не замечали ранее, однако не все они препятствуют работе приложения. Есть разные уровни детализации отчета, которые можно использовать, но E_ALL будет одинаково представлять вам все ошибки, критические ситуации и предупреждения.

Мастер Йода рекомендует:  Как удалить фон на изображении с помощью Photoshop CS6

Когда ваше приложение готово к продуктивной эксплуатации, придется выключить отчет об ошибках, иначе ваши посетители будут видеть странные сообщения, в которых ничего не поймут.

3. Попробуйте IDE

IDE (Integrated Development Environments/интегрированные среды разработки) – полезные инструменты для любого разработчика. Хотя они подойдут не для каждого, IDE определенно имеют свое значение. IDE обеспечивают такие инструменты, как:

Как создать сайт самому?


Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

Code completion (подсказки идентификаторов в редакторе кода)

Предупреждения об ошибках

Рефакторинг кода (переделка кода)

А также большое количество других возможностей. Существует множество отличных IDE, поддерживающих PHP.

4. Попробуйте PHP-frameworks

Вы можете многое узнать о PHP, просто экспериментируя с PHP-фреймворками. Такие фреймворки, как CakePHP или CodeIgniter, позволяют быстро создавать приложения PHP, даже если вы в нем не эксперт. В каком-то смысле они – дополнительные подпорки, которые показывают вам, каким образом должно выглядеть приложение PHP, и демонстрируют полезные концепции программирования (вроде отделения логики от дизайна и т.д.).

Возражение: лично я не советую новичкам пользоваться фреймворками. Сначала выучите основы.

5. Научитесь DRY

DRY – аббревиатура от Don’t Repeat Yourself, (Не Повторяйтесь), и это – полезная концепция программирования, без разницы на каком языке. DRY-программирование, как предполагается названием, гарантирует, что вы не пишете избыточного кода. Вот пример от Reinhold Weber:

теперь применением к нему подход DRY:

Более подробно о концепции DRY можно прочесть здесь и здесь.

6. Делайте отступы и используйте пробелы в коде для читаемости

Если вы не используете отступы и пробелы в коде, то результат выглядит, как картина Джексона Поллака (Jackson Pollack). Обеспечьте читаемость своего кода и нормальный поиск, потому что почти наверняка в будущем вы будете делать в нем изменения. IDE и современные текстовые редакторы могут автоматически делать отступы в коде.

7. Делайте код многоуровневым

Разделение на уровни ваших приложений – это ничто иное, как разделение различных компонентов кода на части. В будущем это даст вам возможность легко изменять код.

8. Всегда используйте

Часто программисты пытаются использовать сокращения в операторах PHP. Вот как это обычно делается:

Хотя это действительно экономит несколько символов, все эти методы являются устаревшими и неофициальными. Придерживайтесь стандартного , так как это гарантированно будет поддерживаться всеми будущими версиями.

9. Используйте содержательные, последовательные названия

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

10. Комментируйте, комментируйте, комментируйте

Кроме использования пробелов и отступов для разделения кода, вам также придется использовать встроенные комментарии, чтобы снабжать примечаниями свой код. Позже вы поблагодарите сами себя, когда придется возвращаться и искать что-либо в коде, или если вы просто не помните того, что делала определенная функция. Это также полезно для тех, кому нужно просмотреть ваш код.

11. Установите MAMP/WAMP

MySQL — самый популярный вид базы данных, используемый с PHP (хотя и не единственный). Если нужно настроить локальное окружение для разработки и тестирования ваших PHP-приложений на компьютере, предусмотрите установку MAMP (Mac) или WAMP (Windows). Установка MySQL на ваш собственный компьютер может стать утомительным процессом, а оба этих программных пакета содержат MySQL. Ловко и просто.

12. Установите лимиты своим скриптам

Установка лимита времени на PHP-скрипты – очень ответственная вещь. Бывают моменты, когда скрипты выходят из строя, и когда это произойдет, вам придется использовать свойство set_time_limit (установить лимит времени), чтобы избежать бесконечно повторяющихся циклов и истечения таймаутов времени соединения с базой данных. Set_time_limit устанавливает лимит времени на максимальное количество секунд, за которое выполняется скрипт (по умолчанию 30). По истечении этого времени возбуждается неустранимая ошибка.

13. Используйте объекты (или ООП)

Объектно-ориентированное программирование (ООП) использует объекты, чтобы представлять компоненты приложения. ООП – это не только способ разбить свой код на отдельные логические секции, оно также снижает количество повторений кода и делает намного более легким его модифицирование в будущем.

14. Поймите разницу между одинарными и двойными кавычками

Использование одинарных кавычек в строках более эффективно, так как парсеру (синтаксическому анализатору) не приходится просеивать код в поиске специальных символов (прим. перев. escape-последовательностей) и прочих вещей, что позволяют двойные кавычки. Там, где это возможно, старайтесь всегда использовать одинарные кавычки.

Возражение: Собственно, это не обязательно верно. Тесты Benchmark показывают, что при тестировании строк без переменных существуют определенные преимущества быстродействия при использовании двойных кавычек.

15. Не ставьте phpinfo() в свой Webroot

Phpinfo – чудесная вещь. Просто создав PHP-файл, в котором есть:

Основы работы с PHP

Учебник PHP

Практика

Важное

Регулярки

Работа с htaccess

Файлы, папки

Сессии и куки

Работа с БД

Практика по работе с БД в PHP

Перед чтением см. новые уроки раздела «Важное», которые появились выше.

Практика

Движок PHP


Продвинутые БД

Аутентификация

Практика

Введение в ООП

  • Урок №
    новая вкладка с new.code.mu
    Введение
  • Урок №
    новая вкладка с new.code.mu
    Свойства
  • Урок №
    новая вкладка с new.code.mu
    Методы
  • Урок №
    новая вкладка с new.code.mu
    Свойства и $this
  • Урок №
    новая вкладка с new.code.mu
    Методы и $this
  • Урок №
    новая вкладка с new.code.mu
    public private
  • Урок №
    новая вкладка с new.code.mu
    Конструктор
  • Урок №
    новая вкладка с new.code.mu
    Геттеры сеттеры
  • Урок №
    новая вкладка с new.code.mu
    Свойства только для чтения
  • Урок №
    новая вкладка с new.code.mu
    Один класс — один файл
  • Урок №
    новая вкладка с new.code.mu
    Объекты в массиве
  • Урок №
    новая вкладка с new.code.mu
    Начальные значения свойств в конструкторе
  • Урок №
    новая вкладка с new.code.mu
    Начальные значения свойств при объявлении
  • Урок №
    новая вкладка с new.code.mu
    Свойство из переменной
  • Урок №
    новая вкладка с new.code.mu
    Метод из переменной
  • Урок №
    новая вкладка с new.code.mu
    Метод сразу после создания
  • Урок №
    новая вкладка с new.code.mu
    Цепочки методов в классе
  • Урок №
    новая вкладка с new.code.mu
    Класс как набор методов
  • Урок №
    новая вкладка с new.code.mu
    Наследование классов
  • Урок №
    новая вкладка с new.code.mu
    Модификатор protected
  • Урок №
    новая вкладка с new.code.mu
    Перезапись методов родителя
  • Урок №
    новая вкладка с new.code.mu
    Перезапись конструктора родителя
  • Урок №
    новая вкладка с new.code.mu
    Передача по ссылке
    новая вкладка с new.code.mu
    . текст, код Клонирование объектов
  • Урок №
    новая вкладка с new.code.mu
    Использование объектов в другом классе
  • Урок №
    новая вкладка с new.code.mu
    Передача объектов параметрами
  • Урок №
    новая вкладка с new.code.mu
    Сравнение объектов
  • Урок №
    новая вкладка с new.code.mu
    Оператор instanceof
  • Урок №
    новая вкладка с new.code.mu
    Контроль типов
  • Урок №
    новая вкладка с new.code.mu
    Статические методы
  • Урок №
    новая вкладка с new.code.mu
    Статические свойства
  • Урок №
    новая вкладка с new.code.mu
    Объект со статическими свойствами и методами
  • Урок №
    новая вкладка с new.code.mu
    Константы класса
    новая вкладка с new.code.mu
    . текст, код Наследование и private
  • Урок №
    новая вкладка с new.code.mu
    . текст, код final
    новая вкладка с new.code.mu
    . в стек это Анонимные классы
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Полиморфизм

Абстрактные классы и интерфейсы

Трейты

ООП Магия

Практика

Практика: классы как набор методов

  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс ArrayConvertor
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс TagHelper
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс FormHelper
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс TableHelper
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс SessionShell
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс CookieShell
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс FileManipulator
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс databaseShell TODO cart корзина flash шаблонизатор роутер контроллер кеш логи фалидатор

Продолжение еще следует

  • .
    по ООП еще много уроков будет, дописываю

В этом уроке мы разберем работу с данными на языке PHP.

Данные — это объекты, которыми может оперировать PHP, к примеру, сообщение пользователя — это строка, а его возраст — это число. Данные могут быть разных типов.

Строки и числа

Самыми простыми типами данных в PHP являются строки и числа.

Числа обозначают сами себя, например 1, 12, 145, а вот строки требуется брать в кавычки (одинарные или двойные — без разницы):

Числа также могут быть дробями. Разделителем целой и дробной части служит знак «точка». К примеру, число 10.754 — это дробь.

Переменные

Одним из самых главных и распространенных объектов в программировании является переменная.

Переменная — это такой объект, который может хранить внутри себя различные данные, например, строки или числа.

Имя переменной должно состоять из английских букв: больших или маленьких, а также цифр и знака_подчеркивания.

В PHP перед переменной обязательно должен быть написан знак доллара $:

Операция присваивания

Очень важным элементом программирования является операция присваивания.

С помощью присваивания мы можем положить в переменную результат какой-либо операции, например, строку или число, а затем достать эти данные в нужном нам месте и воспользоваться ими.

Комментарии

К коде PHP, так же, как и в HTML и CSS, можно оставлять комментарии, которые будут проигнорированы PHP при выполнении программы.

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

Комментарии могут быть многострочными и однострочными:

Функции

В программировании есть такое понятие, как функции. В отличии от переменных, которые хранят внутри себя некоторые данные, функции выполняют операции над этими данными.

Функция отличается от переменной тем, что перед именем функции не ставится знак доллара (он нужен только для переменных), а также тем, что у нее после названия стоят круглые скобки ( ), внутри которых через запятую можно перечислять параметры.

Параметры — это данные (например, строки или числа), которые мы даем функции, она производит над ними какие-то операции и возвращает нам результат.

Например, в PHP есть стандартная функция sqrt(), которая параметром принимает число, а возвращает квадратный корень этого числа.

То есть, если ей передать число 9, вот так — sqrt(9), то на выходе получим число 3. Полученное число мы можем записать в какую-либо переменную или вывести на экран.

Давайте найдем корень из 25 и запишем в переменную $a:

Функция echo

В PHP существует специальная функция echo, которая позволяет вывести какой-либо текст в окно браузера. В отличие от других функций, после echo не требуются круглые скобки ().

Следующий код выводит на экран заданный текст:

А в следующим коде переменной $text присваивается фраза, а затем содержимое этой переменной выводится на экран:

Математические операции

В PHP между числами и переменными можно совершать различные математические операции: сложение (знак +), вычитание (знак -), умножение (знак *), деление (знак /).

Чтобы понять, как с ними работать, посмотрите на следующий пример:

Можно сначала записать числа в переменные, а потом уже проводить операции с переменными:

А можно также одновременно производить операции и с числами, и с переменными:

Специальные значения

В PHP, как и в других языках программирования, существуют ключевые слова для некоторых специальных значений.

Значения true, false

Значения true и false обозначают истину и ложь соответственно. Они используются для таких вещей, которые предполагают два варианта ответа — да или нет.

К примеру, на вопрос ‘вам уже есть 18 лет?’ в можете ответить да, то есть true, или нет, то есть false.

Эти значения называются логическими.

Значение null

Значение null обозначает ‘ничего’. К примеру, если мы попробуем обратиться к переменной, которой мы еще не задали значение — то ее значение и будет null.

Функция var_dump

Бывают ситуации, когда нам нужно посмотреть содержимое переменной, чтобы понять, почему наш код работает не так, как мы хотели. Обычно на помощь приходит функция echo, однако, бывают ситуации, когда echo не работает.

Например, если переменная является пустой строкой », то выведя ее содержимое на экран с помощью echo, мы ничего не увидим.

Вторая ситуация — когда переменная содержит строку с пробелами по краям, например:

Для решения описанных выше проблем следует использовать функцию var_dump(), которая предназначена для отладки кода и позволяет выводить значения переменных и их тип.

С помощью этой функции мы можем увидеть, что переменная пуста, можем подсчитать количество пробелов по краям строки, можем увидеть, что переменная логическая и имеет значение true или false (об этих значениях чуть позже).

Пример использования var_dump():

PHP внутри HTML

PHP код можно вставлять внутрь HTML кода:

Сложение строк в PHP

В PHP, в отличие от многих других языков, строки складываются с помощью знака «точка»:

Получение определенного символа строки

В PHP можно получить доступ к определенному символу строки по его номеру таким образом: $a[n] – n-ный символ строки (учтите, что нумерация идет с нуля):

Сложности с операцией присваивания

Очень часто новички не понимают, что присваивание отличается от обычного равенства. Посмотрите следующий пример:

С точки зрения математики запись $a = $a + 2 абсурдна, но не с точки зрения программирования.

В данном случае переменная $a имела значение 1, а затем мы переменной $a присвоили новое значение — старое значение переменной $a плюс 2.

Операции инкремента и декремента

Операция $a++ или ++$a – увеличивает переменную $a на единицу. Эта операция называется инкремент.

Операция $a— или —$a – уменьшает переменную $a на единицу. Эта операция называется декремент.

Давайте посмотрим, в каких случаях проявляется разница между ++a и a++.

Пусть у нас есть код echo ++a и код echo a++.

В первом случае переменная сначала увеличится на единицу, а потом выведется, а во втором случае — сначала выведется, а потом увеличится.

Операции +=, -=, *=, /=

Мы уже рассматривали код, который демонстрирует сложности с операцией присваивания:

В данном случае мы присваиваем переменной $a ее текущее значение, увеличенное на 2. Однако PHP позволяет записать этот код еще короче с помощью оператора +=:

Кроме того, существуют операторы -=, *=, /=, которые эквивалентны следующему коду:

Операция .=

Существует также операция .=:

Типизация переменных

Что будет, если попробовать сложить, к примеру, число и строку, вот так: 3+’3′? В результате вы получите число 6. Это значит, что PHP автоматически осуществляет преобразование типов при необходимости, вам не нужно за это переживать.

То же самое случится, если, к примеру, сделать так: 3+true или 3+false. Попробуйте эти примеры сами и узнайте к чему преобразуется true в этом случае, а чему — false.

Что вам делать дальше:

Приступайте к решению задач по следующей ссылке: задачи к уроку.

Когда все решите — переходите к изучению новой темы.

PHP против ASP — делайте ставки, господа!

PHP во всех направлениях рулит! Он гораздо лаконичнее по синтаксису (aka C++) чем ASP. У меня много знакомых АСПэшников, которые постоянно ноют из-за использования этого языка, но продолжают его использовать! А ПХП бьет АСП по всем показателям! Да и вообще FreeBSD + PHP + MySQL это тема, а MS Windows + ASP + MSSQL. сами решайте! 🙂

2. Разместил admin 26.03.2007, 15:35

У меня тоже есть один знакомы ASPшник, делает городской портал на нем, блин, он изобретает заного велосипед, когда уже давно это есть на пхп, но ничего не слушает гнет свое.

Добавить комментарий