Archive for the ‘Многофайловые сценарии PHP’ Category

Ссылки, используемые в функциях

Поскольку обе переменные — и Smyvar. и Smyref — представляют одни и те же данные, то если вы разрушите любую из них с помощью PHP-функции unset (), данные не будут потеряны. Оставшаяся переменная будет по-прежнему ссылаться на те же данные. И это справедливо независимо от того, сколько ссылок на одну переменную будут разрушено. До тех пор, пока хотя бы одна из переменных ссылается на элемент данных, он остается доступным в сценарии через эту переменную. (more…)

Tags: , ,

Related posts

Ссылки Ссылки на переменные

В продолжение нашего обсуждения основ программирования на РНР рассмотрим создание ссылок на переменные. Концепция ссылок в РНР существенна для представления разработчикам возможностей ссылаться на данные, содержащиеся в переменной, по одному или более именам переменных. Это значит нечто большее, чем просто то, что две переменные имеют одно и то же значение (например, и $а, и $Ь равны 5), Когда одна переменная ссылается на другую, любые изменения, выполненные для одной из них, изменяют значение другой, на которую ссылается первая переменная. (more…)

Tags: , ,

Related posts

Существуют два основных отличия

Если оба оператора позволяют текущему сценарию выполнять код из отдельного файла, в чем же разница между ними? Существуют два основных отличия: первое — это способность возвращать значения и второе — при каких условиях загружается запрошенный файл. Когда применяется директива include, РНР откладывает момент-загрузки запрошенного файла до того момента, когда сценарий достигнет точки выполнения оператора include и заменит его содержимым этого файла. В противоположность этому в случае применения оператора require, он заменяется содержимым включаемого файла независимо от того, будет ли выполнен оператор required (и, соответственно, содержимое файла) в процессе нормального выполнения сценария. (more…)

Tags: , ,

Related posts

Общий синтаксис операторов

Если попытаться повторно загрузить файла одним из этих методов, такая попытка будет проигнорирована. Поскольку недопустимо определять одну и ту же функцию множество раз в сценарии, эти директивы позволяют разработчику включать сценарий по необходимости, не проверяя, был ли он ранее загружен.
Общий синтаксис операторов include и require выглядит так: (more…)

Tags: , ,

Related posts

Многофайловые сценарии PHP

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

Tags: , ,

Related posts

Возврат значения по ссылке

Не волнуйтесь, если поначалу сценарий покажется непонятным. Ссылки — это одна из наиболее сложных для понимания концепций в РНР, потому требуется некоторая практика, чтобы разобраться в них.
Также следует отметить, что вы не должны передавать параметры по ссылке во время выполнении и а объявлении функции. Размещение ссылок в любом из этих двух случаев будет иметь один и тот же эффект. Единственная разница в том, что если пара метры-ссылки объявлены в самой функции, то при всех ее вызовах параметры будут передаваться по ссылке.
Наряду с передачей переменных в функции по ссылке, РНР поддерживает возвращаемые ссылочные переменные. В примере, представленном в листинге 1.29, эта концепция (more…)

Tags: , ,

Related posts

Строки в РНР

Как и большинство других языков, РНР определяет строки как последовательности символов. Важно понимать, что понятие “символа” не ограничено только теми символами, которыми люди пользуются каждый день, — буквами алфавита, десятичными цифрами и знаками пунктуации. Смысл, ассоциируемый с понятием “символ”, означает только один байт данных. В зависимости от того, как этот байт используется, он может быть буквой, точкой растрового изображения и даже частью звуковой дорожки в формате МРЗ.
Поскольку символ представлен одним байтом данных, встроенные строки РНР способны хранить только до 256 разных значений каждого символа. Некоторые язы- ки, наприме (more…)

Tags: , ,

Related posts

Сравнение строк

Определение отношений между двумя строками не так очевидно, как те же операции с числами. Главная проблема заключается в контексте. Если вы сравниваете строки в двоичной форме, то два слова “Macro” и “macro” будут полностью различны, поскольку байтовое значение символа “М”, как и должно быть, отличается от значения символа “т”. Однако, в зависимости от ваших требований, “Macro” и “macro” могут быть эквивалентны и должны трактоваться именно так.
Наиболее простой способ сравнения двух строк предусматривает использование встроенны (more…)

Tags: , ,

Related posts

Результат

Вместо этого необходимо пользоваться операциями сравнения с контролем типов, которые могут проверить, что два сравниваемых операнда относятся к одному типу данных, прежде чем в действительности сравнивать их значения. Например, выражение:
(О === ‘Macro’J;
вернет значение false, что, очевидно, и ожидалось получить. То же произойдет с выражением:
(О === ‘ 0 ‘) ; (more…)

Tags: , ,

Related posts

“сходства”

Довольно трудно научить компьютер понимать” строки так же, как это делает человек. Типичный пример этой проблемы — ошибки правописания, в частности, когда вы имеете дело с именами.
Несмотря на то что не существует решений, которые хотя бы в начальной степени приближались к возможностям человеческого мозга, все же некоторые алгоритмы в течении мнопгх лет были разработаны для определения “сходства” между строками в виде полутонов, вместо “черно-белого” подхода.Одним из примеров этого является алгоритм soundex, (more…)

Tags: , ,

Related posts

Сравнение фраз

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

echo levenshtein (’Tabini’, ‘Tabani’); echo “\n”;
Этот сценарий вернет 41, поскольку необходимо изменить только одну первую букву ‘\’ в слове ‘Tabini’ на ‘а’, чтобы получить строку ‘Tabani’. Несмотря на то что меньшее значени (more…)

Tags: , ,

Related posts

Поиск и замена строк

Использование строк без представления о том, что в них содержится, немного похоже на ночную езду на автомобиле с выключенными фарами — вы знаете, что дорога должна быть где-то здесь, но не можете знать этого точио.
РНР предлагает широкий спектр функций для поиска и замены текста внутри строк с использованием как традиционного подхода “поиска и замены”, так и специальной системы, известной под названием регулярных выражений, которая будет описана далее в этой книге.
Простейшая форма поиска состоит в нахождении подстроки в строке. Эта задача обычно выполняется вызовом функции strpos (Shaystack, Sneedle [, SstartJ), которая возвраща (more…)

Tags: , ,

Related posts