Команда (фрилансеры)

Набираем команду фрилансеров, Вы:

  • Программист,
  • Дизайнер,
  • SEO-специалист,
  • Менеджер

Разработка на заказ

Наша команда фрилансеров выполнит
работы на заказ:

Создание и раскрутка сайтов
Разработка приложений (мобайл, десктоп, сервер)
Разработка игр (веб, мобайл, 3D)
Аутсорсинг, фриланс

Контакты
vk.com/sitev_ru
Skype: sitev.ru
E-mail: mike@sitev.ru
github.com/sitev

Рейтинг@Mail.ru

Besucherzahler
счетчик посещений
Сайт на C++
Наш сайт работает на C++ и это очень круто! =))

Изучаем PHP после C++

Допустим мы уже знаем C++. Чем же от него отличается PHP?

Давайте пробежимся по основным различиям.

PHP (PHP Hypertext Processor) - язык программирования, используемый, в основном, для генерации HTML-страниц. И поэтому в нём предусмотрена возможность интегрирации PHP- и HTML-тексты.

<html>
<head>
<title>Простой пример</title>
</head>
<body>
<?php
    echo "Hello, world!";
?>
</body>

Синтаксис языка PHP

Языковые конструкции PHP основаны на синтаксисе языка C. Поэтому PHP и C++ близки, но не на столько, чтобы сразу переключиться с C++ на PHP.

Комментарии

PHP поддерживает 3 вида комментариев:

  • в стиле C (от /* до */);
  • в стиле C++ (от // до конца строки);
  • в силе оболочек UNIX (от # до конца строки).

Переменные

Основным отличием PHP от C++ является отсутствие объявления типа переменной, переменная может содержать значения любого типа, а само объявление переменной начинается со знака доллара! Например:

$a = 1;
$a = "Это строка символов";

В PHP четыре простых типа данных: логические, целые и вещественные числа, строки.

Строки

Строки заключаются в двойные или одинарные кавычки.

Если строка ограничена "", то можно, как и в С++, использовать не только различные ESC-последовательности: \n, \r, \t и т.д., но и в ней производится подстановка значений переменных на места их имен.

$a = "Hello"; $b = "world" $c = "$a, $b!";

В строках ограниченных '' ESC-последовательностей только две: \\ и \' и подстановка значений вместо переменных не производится.

Операторы

В PHP реализованы все операторы языка C и добавлены несколько новых.

Операторы сравнения === (тождественно равно) и !== (тождественно не равно) сравнивают не только два значения между собой, но и их типы:

$a === $b; // Результат true, если $a равно $b и имеет тот же тип
$a !== $b; // Результат true, если $a не равно $b, или они разных типов.

Операторы . и .= осуществляют конкатенацию (слияние) строк, например:

$a = "Hello";
$b = "world";
$a .= ", ".$b."!";	// Результат - "Hello, world!"

Константы

Константы в PHP именуются только идентификаторами, как и в С++, без символа $. Но описание, конечно же, не удобное, через функцию define(), например:

define ("SITE_URL", "sitev.ru");
echo "Site URL: ".SITE_URL;

Ссылки

В отличие от языка C в PHP нет указателей, но в PHP есть ссылки на переменные, которые организуются оператором &, рассмотрим на примере:

$a = "test";
$b = &$a;
echo $a;	// Выводит test
echo $b;	// Ещё раз выведет test

Управляющие структуры

В PHP реализованы все управляющие структуры языка C++ (if, for, while, do..while, switch). Но при этом структура if расширена конструкцией elseif, например:

if ($a == $b) {
	echo "равно";
}
elseif ($a > $b) {
	echo "больше";
}
else {
	echo "меньше";
};

В этом, если честно, я не вижу никакого смысла, можно было бы просто применить else if.

А вот операторы break и continue дополнены необязательным целочисленным аргументом. Для break - это количество вложенных структур необходимо прервать. Для continue - количество вложенных циклов пропустить оставшуюся часть итерации. По умолчанию 1. Иногда это может быть удобно.

Оператор require()

Оператор require() однократно подключает в программу содержимое указанного файла также, как и директива #include в C/С++. Код в подключаемом файле необходимо отметить тегами . Существуют некоторые разновидности этого оператора require_once(), include() и include_once().

Массивы в PHP

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

Создать массив можно с помощью конструкции array() или через квадратные скобки, что является одним и тем же:

$a = array(1, 2, 3);
$a = [1, 2, 3];

По умолчанию, первый элемент массива имеет индекс 0, второй имеет индекс 1, и так далее.

Можно явно указать индекс, тогда используется следующий синтаксис: число => значение:

$a = [1=>1, 2=>2, 3=>3];
$a = [1, 15=>2, 10];
$a = [1, 2, 10, 2=>7];

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

Пользовательские функции

function fname (аргументы) {
	тело функции
	[return $retval;]
};

Для написания функции, в отличии от C++, используется лишнее, как мне кажется, слово function. Зато не требуется предварительного объявления функции. Описать функцию можно ниже её вызова.

ООП в PHP

Формат описания класса в PHP такой:

class ИмяКласса [extends ИмяКлассаПредка] {
	определение переменных и/или методов
};

Описании класса в PHP, в принципе, похоже на описание класса в C++.

Однако есть различия:

  • для наследование класса используется слово extends, а не символ ":"
  • нет множественного наследования
  • нет деструктора
  • конструктор обозначается словом __construct
  • по-умолчанию область видимость членов класса public
  • обращение к одноименной функции класса-предка делается через parent::

Конечно, в этой статье я указал не все отличия PHP от C++, но основные уж точно учёл. Остальное придёт с опытом.


Отправить комментарий
Наш проект: язык Cj
Cj - язык программирования (C++ & Javascript)
Новый язык программирования, для разработки веб, мобайл, десктоп-приложений, игр... подробнее...

Хотите поддержать проект?

  • Оставляйте ссылки на наш сайт
  • Станьте спонсором проекта
подробнее...

Концепция SITEV.ru

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