Знак доллара перед именем свойства в self
self::CLASSES — обращение к константам внутри класса.
Отслеживать
ответ дан 31 янв 2013 в 4:07
5,068 17 17 серебряных знаков 30 30 бронзовых знаков
круто, не знал/не использовал никогда в отношении констант класса. Начиная с каких версий php это поддерживается?
31 янв 2013 в 4:23
Вместо self::CLASSES предпочитаю static::CLASSES, т.к. используя в методе базового класса self::CLASSES будем во всех производных классах получать одно и то же значение — константу базового класса. Используя static::CLASSES в методе базового класса (и переопределив константу в производном) — будет использовано значение константы производного класса
31 янв 2013 в 4:56
@sergiks: Константы бывают разные: — неограниченной областью видимости ( define ) — инициализирующий вначале, а потому, доступны везде независимо от места их объявления; — с ограниченной ( const ) — должны быть объявлены в самой верхней области видимости. Их нельзя объявлять внутри функций, циклов или выражений if. Кроме того, нельзя присвоить им значения переменных и совершать иные операции (к примеру, побитовые операции) — указывать явное значение. Работают быстрее и памяти потребляют меньше. С PHP 5.3 доступны и вне классов.
Синтаксис PHP
Разберёмся, из чего состоит любой язык программирования.
У каждого языка есть правила и конструкции, следуя которым мы выражаем мысли и делаем их понятными для другого человека. В программировании всё точно так же. Но вместо человеческого языка мы используем язык программирования PHP, а в роли нашего собеседника выступает PHP-интерпретатор. Поэтому, чтобы выразить свою мысль, мы должны сделать её понятной для интерпретатора.
Переменные
Это основа любого языка программирования. Во время написания кода мы постоянно будем работать с переменными, понять их концепцию очень просто. Переменная — это контейнер, в котором содержатся данные, так же как напиток содержится в чашке. Любую информацию, которую мы будем использовать в коде, сначала необходимо сохранить в переменной.
У переменной обязательно должно быть имя, поэтому переменная всегда состоит из имени и значения. Значение — это любая информация, которая хранится внутри переменной.
Например, мы можем попросить посетителя страницы указать свой возраст, а затем использовать это значение для других целей — узнать год рождения или показать возраст самой странице.
Как работать с переменными
Любую переменную следует вначале объявить, то есть дать ей имя и присвоить значение.
В синтаксисе PHP имя переменной записывается латинскими символами, но первым символом всегда должен быть знак доллара $ , а затем идёт имя.
Не допускается начинать имя переменной с цифры, а также использовать любые значения, кроме букв алфавита и знака подчёркивания.
Примеры допустимых имён переменных:
- $age ;
- $favorite_color ;
- $name2 .
Примеры недопустимых имён:
- age — забыт знак доллара в начале;
- $42 — начинается с цифры;
- $my-age — содержит дефис.
Присваивание
Пустая переменная не будет слишком полезна. Поэтому давайте сразу что-нибудь туда поместим. Такое действие называется операцией присваивания.
Вот как выглядит присваивание информации в новую переменную: $favorite_color = «green»; .
Знак «равно» в PHP является оператором и всегда означает операцию присваивания. Здесь мы записали слово green в переменную под именем favorite_color .
Обратите внимание: мы взяли в кавычки слово green. Кавычки всегда строго необходимы, если речь идёт об использовании текста. Но если в переменную помещается не текст, а число, то кавычки не нужны.
Пример: $favorite_number = 42;
Использование
Мы научились сохранять информацию в переменных. Теперь посмотрим, как получить доступ к этой информации в нашем сценарии.
Ведь когда мы пытаемся запомнить в голове новый телефонный номер, то делаем это, чтобы на него позвонить.
Это значит, что мы запоминаем информацию с целью вернуться к ней в дальнейшем и применить для какого-то действия — совершить звонок, написать сообщение и тому подобное.
Эта логика полностью работает и в программировании. Информацию, сохранённую однажды, можно использовать в дальнейшем для выполнения различных действий. Таким действием может быть вывод этой информации на экран.
Перепишем уже знакомый сценарий так, чтобы в нём использовались переменные.
Теперь этот простой сценарий состоит из двух шагов. На первом мы объявляем (инициализируем) новую переменную и помещаем туда текст. На втором шаге мы используем эту переменную, обращаясь к ней по имени в контексте вызова функции вывода на экран. То есть теперь функция print получает не текст напрямую, а переменную, которая содержит этот текст.
Хотите потренироваться использовать переменные в PHP? Тогда выполните это задание.
Конкатенация
Этим страшным словом называется операция склеивания нескольких строк в одну. Предположим, у нас есть две уже знакомые переменные: $favorite_color и $favorite_number , а мы собираемся вывести их в одной строке, чтобы получить такой результат:
- “Мой любимый цвет — зелёный, а любимое число — 42”
где значение цвета хранится в $favorite_color , а числа в $favorite_number .
Чтобы получить такую строку, необходимо использовать оператор конкатенации — . (точка). В качестве операндов он берёт две строки или переменные, содержащие строку, а затем возвращает новую строку.
Выглядит это так:
В этом задании вы познакомитесь с конкатенацией на практике.
Типы данных
Выше уже упоминалось, что данные, помещённые в переменную, могут быть строкой текста или числом. В действительности таких типов данных гораздо больше, но первое время мы будем работать только с несколькими. Однако нам всё равно важно уже сейчас понимать, что такое «типы данных».
Тип данных в языке программирования определяет допустимые значения, а также допустимые операции с данными этого типа.
Например, с данными типа «целое число» допускается выполнять арифметические операции, а с данными типа «строка» — нет. Поделить строку на строку невозможно. Кроме того, числа могут быть только в определённых пределах (в версии PHP для 32-битной ОС, самое большое число: 2147483647), а строки обязательно должны находиться в кавычках.
Операторы
Оператором в программировании называется нечто, принимающее одно или более значений.
Например, в арифметике есть такие операторы: +, -, /, *. Что означает сложение, вычитание, деление и умножение. Оператор всегда работает только в паре с двумя значениями, например, складывает два числа (операнда) или умножает их друг на друга.
Вы можете потренироваться использовать арифметические операторы в этом задании.
PHP дополняет уже знакомые нам из арифметики операторы, несколькими новыми:
- уже знакомый оператор присваивания = , который используется для присваивания значения переменной;
- очень полезны операторы сравнения: == , != , > , < — равно, не равно, больше и меньше;
- % — оператор остатка от деления одного числа на другое. Например: 5 % 2 == 1; // true .
Условные конструкции
Иногда, в зависимости от условия, нужно выполнять различные действия. Для этого используется оператор if . Например, мы спросили пол посетителя страницы, сохранили его в переменную, а теперь хотим вывести разное приветствие, в зависимости от того, мужчина это или женщина. Здесь пригодятся операторы if и else .
else
Из примера видно, что условная конструкция состоит из трёх частей:
- условие if — выражение, которое возвращает истинный или ложный результат;
- блок if — строки кода, которые будут выполнены, если условие вернуло истину;
- блок else — строки кода, которые будут выполнены, если условие вернуло ложь.
Обратите внимание, что каждый блок обрамляется и ограничивается фигурными скобками.
Чтобы закрепить материал, пройдите этот тренажёр. В нём подробно рассказывается, как использовать условные конструкции.
Выражения
Выражение в языке программирования — это минимальный блок кода, имеющий значение (результат). Звучит несколько сложно, но на практике почти каждая строка сценария является выражением. Вот несколько примеров выражений:
- $amount = 2 + 2;
- 2 > 3
- $gender == «мужчина»
Важно усвоить одно главное свойство выражений — они всегда имеют результат. Также различают два типа выражений: логические и арифметические. Результатом выполнения логического выражения всегда будет истина или ложь.
Например, результатом выражения 2 > 3 будет «ложь», потому что два, очевидно, меньше трёх.
Другим видом выражений является арифметическое выражение. Результатом выражения $amount = 2 + 2 будет 4.
В каких случаях может понадобиться знать результат выражения?
Выражения особенно полезны в условиях, то есть когда мы хотим выполнить или не выполнять какое-либо действие, в зависимости от результата выражения. Их также можно объединять между собой таким образом, что несколько отдельных выражений в итоге вычисляются как одно.
Предположим, что на нашем сайте мы хотим показать определённую картинку только посетителям мужского пола и старше 18 лет. Ранее, в коде сценария, мы уже получили и сохранили год рождения и пол посетителя в переменные $age и $gender .
Напишем выражение и условие для реализации такого поведения:
Обратите внимание на ключевое слово and — это оператор, который объединяет два отдельных выражения в одно новое. Это новое выражение будет иметь значение «истина», только если оба отдельных выражений будут истинны.
Иными словами, наше условие будет выполняться только для посетителей мужского пола и возрастом старше восемнадцати. То есть несовершеннолетние мальчики, равно как и несовершеннолетние девочки никакой картинки не увидят.
Понятие алгоритма
Многие из нас что-то слышали про алгоритмы на уроках информатики в школе. К сожалению, далеко не все школьные знания остаются с нами после её окончания. Тем не менее понимание, что такое алгоритмы, и умение их строить — это очень важные навыки, без которых не получится решать даже относительно простые задачи.
Если говорить простыми словами, то алгоритм — это просто очень подробный план работы. Мы все в течение жизни что-нибудь планируем: отпуск, какое-нибудь мероприятие, своё самостоятельное обучение и тому подобное. От простого списка шагов алгоритм отличает существование условий и повторяющихся действий. Если вы в состоянии создать хороший, подробный алгоритм для реализации, скажем, какой-нибудь возможности на сайте, то можно считать, что половина дела уже сделана!
Разберём для примера один алгоритм средней сложности. На сайт нужно добавить форму обратной связи. Пользователь может заполнить эту форму, указать там свои контактные данные и написать сообщение. Информация из заполненной формы отправляется на электронную почту владельцу сайта. Вот как будет выглядеть алгоритм для этой задачи:
- Показать форму.
- Проверить, что форма отправлена.
- Составить список полей формы, обязательных для заполнения.
- Для каждого поля из списка проверить, что оно заполнено.
- Если поле не заполнено, показать ошибку и не отправлять форму.
- Если все поля заполнены, сформировать сообщение электронной почты.
- Отправить сообщение на адрес администратора сайта.
Конфигурация PHP
Большинство программ всегда имеют отдельное окно настроек, где можно указать все основные параметры этого приложения. В PHP тоже есть свои настройки, только меняются они не через интерфейс, а путём редактирования специального файла — php.ini . В файле php.ini задаются все настройки работы PHP. Из того, что нас будет интересовать в первую очередь — это режим управления ошибками, подключение дополнительных возможностей, настройки сессий и кук.
В разных ОС этот файл находится по разным путям. Проще всего пользователям сборки OpenServer — там php.ini можно открыть из главного меню.
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
Php что это знака доллара
Переменные в PHP представлены знаком доллара с последующим именем переменной. Имя переменной чувствительно к регистру.
Имена переменных соответствуют тем же правилам, что и остальные наименования в PHP. Правильное имя переменной должно начинаться с буквы или символа подчёркивания и состоять из букв, цифр и символов подчёркивания в любом количестве. Это можно отобразить регулярным выражением: ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$
Замечание: Под буквами здесь подразумеваются символы a-z, A-Z и байты от 128 до 255 ( 0x80-0xff ).
Замечание: $this — это специальная переменная, которой нельзя ничего присваивать. До PHP 7.1.0 было возможно косвенное присвоение (например, с использованием переменных переменных).
Подсказка
Для информации о функциях работы с переменными обращайтесь к разделу функций работы с переменными.
$var = ‘Боб’ ;
$Var = ‘Джо’ ;
echo » $var , $Var » ; // выведет «Боб, Джо»
?php
$ 4site = ‘ещё нет’ ; // неверно; начинается с цифры
$_4site = ‘ещё нет’ ; // верно; начинается с символа подчёркивания
$täyte = ‘mansikka’ ; // верно; ‘ä’ это (Расширенный) ASCII 228.
?>
По умолчанию переменные всегда присваиваются по значению. То есть, когда вы присваиваете выражение переменной, все значение оригинального выражения копируется в эту переменную. Это означает, к примеру, что после того как одной переменной присвоено значение другой, изменение одной из них не влияет на другую. Дополнительную информацию об этом способе присвоения смотрите в разделе Выражения.
PHP также предлагает иной способ присвоения значений переменным: присвоение по ссылке. Это означает, что новая переменная просто ссылается (иначе говоря, «становится псевдонимом» или «указывает») на оригинальную переменную. Изменения в новой переменной отражаются на оригинале, и наоборот.
Для присвоения по ссылке, просто добавьте амперсанд (&) к началу имени присваиваемой (исходной) переменной. Например, следующий фрагмент кода дважды выводит ‘ Меня зовут Боб ‘:
$foo = ‘Боб’ ; // Присваивает $foo значение ‘Боб’
$bar = & $foo ; // Ссылка на $foo через $bar.
$bar = «Меня зовут $bar » ; // Изменение $bar.
echo $bar ;
echo $foo ; // меняет и $foo.
?>?php
Важно отметить, что по ссылке могут быть присвоены только именованные переменные.
$foo = 25 ;
$bar = & $foo ; // Это верное присвоение.
$bar = &( 24 * 7 ); // Неверно; ссылка на неименованное выражение.
?php
function test ()
return 25 ;
>
Хорошей практикой считается инициализировать переменные, хотя в PHP это и не обязательное требование. Неинициализированные переменные принимают значение по умолчанию в зависимости от их типа, который определяется из контекста их первого использования: булевы принимают значение false , целые числа и числа с плавающей точкой — ноль, строки (например, при вызове с конструкцией echo ) — пустую строку, а массивы становятся пустыми массивами.
Пример #1 Значения по умолчанию в неинициализированных переменных
// Неустановленная И не имеющая ссылок (то есть без контекста использования) переменная; выведет NULL
var_dump ( $unset_var );
?php
// Булевое применение; выведет ‘false’ (Подробнее по этому синтаксису смотрите раздел о тернарном операторе)
echo $unset_bool ? «true\n» : «false\n» ;
// Строковое использование; выведет ‘string(3) «abc»‘
$unset_str .= ‘abc’ ;
var_dump ( $unset_str );
// Целочисленное использование; выведет ‘int(25)’
$unset_int += 25 ; // 0 + 25 => 25
var_dump ( $unset_int );
// Использование в качестве числа с плавающей точкой (float); выведет ‘float(1.25)’
$unset_float += 1.25 ;
var_dump ( $unset_float );
// Использование в качестве массива; выведет array(1) < [3]=>string(3) «def» >
$unset_arr [ 3 ] = «def» ; // array() + array(3 => «def») => array(3 => «def»)
var_dump ( $unset_arr );
// Использование в качестве объекта; создаёт новый объект stdClass (смотрите http://www.php.net/manual/ru/reserved.classes.php)
// Выведет: object(stdClass)#1 (1) < ["foo"]=>string(3) «bar» >
$unset_obj -> foo = ‘bar’ ;
var_dump ( $unset_obj );
?>
Полагаться на значения по умолчанию неинициализированных переменных довольно проблематично при включении файла в другой файл, использующий переменную с таким же именем. В случае работы с неинициализированной переменной вызывается ошибка уровня E_WARNING (до PHP 8.0.0 выбрасывалась ошибка уровня E_NOTICE ), за исключением случая добавления элементов в неинициализированный массив. Для обнаружения инициализации переменной может быть использована языковая конструкция isset() .
User Contributed Notes 5 notes
13 years ago
This page should include a note on variable lifecycle:
Before a variable is used, it has no existence. It is unset. It is possible to check if a variable doesn’t exist by using isset(). This returns true provided the variable exists and isn’t set to null. With the exception of null, the value a variable holds plays no part in determining whether a variable is set.
Setting an existing variable to null is a way of unsetting a variable. Another way is variables may be destroyed by using the unset() construct.
print isset( $a ); // $a is not set. Prints false. (Or more accurately prints ».)
$b = 0 ; // isset($b) returns true (or more accurately ‘1’)
$c = array(); // isset($c) returns true
$b = null ; // Now isset($b) returns false;
unset( $c ); // Now isset($c) returns false;
?>
is_null() is an equivalent test to checking that isset() is false.
The first time that a variable is used in a scope, it’s automatically created. After this isset is true. At the point at which it is created it also receives a type according to the context.
$a_bool = true ; // a boolean
$a_str = ‘foo’ ; // a string
?>
If it is used without having been given a value then it is uninitalized and it receives the default value for the type. The default values are the _empty_ values. E.g Booleans default to FALSE, integers and floats default to zero, strings to the empty string », arrays to the empty array.
A variable can be tested for emptiness using empty();
$a = 0 ; //This isset, but is empty
?>
Unset variables are also empty.
empty( $vessel ); // returns true. Also $vessel is unset.
?>
Everything above applies to array elements too.
$item = array();
//Now isset($item) returns true. But isset($item[‘unicorn’]) is false.
//empty($item) is true, and so is empty($item[‘unicorn’]
$item [ ‘unicorn’ ] = » ;
//Now isset($item[‘unicorn’]) is true. And empty($item) is false.
//But empty($item[‘unicorn’]) is still true;
$item [ ‘unicorn’ ] = ‘Pink unicorn’ ;
//isset($item[‘unicorn’]) is still true. And empty($item) is still false.
//But now empty($item[‘unicorn’]) is false;
?>
For arrays, this is important because accessing a non-existent array item can trigger errors; you may want to test arrays and array items for existence with isset before using them.
Php что это знака доллара
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel
Помог: 3 раз(а)
Секрет
Теперь, когда вы уже наверняка второпях отправили свой запрос,
я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
даже если первый ответ по теме последуем сразу же.
Само собой я знаю что ответят мне тут же, и если я посмотрю
на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
вопрос автора и еще два сообщение вида Ответ + Спасибо
После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..
Уверен что если бы я им сказал что у меня есть
фиолетовый квадрат, и нужно превратить его в синий треугольник
и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
но почему то кисточка не принимала цвет краски в банке,
то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
предложив её открыть, а не тратить еще стольник на жестянку.
Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.
На последок как оно происходит на форумах
Цитата:
Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
Новичок: Спасибо, братан! То что нужно.
Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12