Говорят, что создание сайта - очень длительный и трудоемкий процесс. Мы скажем - НЕТ! Ведь с новыми технологиями, такими как HTML5, CSS3, PHP и MySql можно быстро и легко научиться создавать сайты любой сложности.
Два сумасшедших веб-мастера покажут где что лежит и как этим пользоваться.
Очень просто купить модные кожаные ремни Mayer
Авторизация
Новый
Забыл
Пожалуйста, заполните поля выше. Это нужно сделать обязательно, иначе ничего не получится.
PHP Статейки /

Комментарии к ошибкам PHP-разработчиков (автор: kingston)

  • Пятница, 23 сентября 2012, 14:43 |
  • Автор: falkovsky |
  • Просмотров: 1613 |
  • Комментарии: 1 |
  • В закладки:
1. Имеется ли переменная в массиве можно определить с помощью сравнения. Численный 0 проверяется на равенство со строкой, а в случае сравнения числа и строки, строка приводится к численному типу. В результате строка apple приводится к числу 0. В случае если строка была бы «2apple», то она после выполнения операции приведется к числу 2. Эту ситуацию можно решить в случае передачи в функцию in_array() еще одного необязательного параметра, который бы определял необходимость проверки типа переменной.

2. Переменная «$v», которая была создана в первом цикле, имеет глобальную область видимости и ссылается на значение элемента массива «b». Исходя из этого, после выполнения первого цикла в «$v» станет храниться ссылка на последний элемент массива. После прохождения второго цикла, значение, находящееся в массиве «$c», каждый следующий проход будет, грубо говоря, «создавать свою копию» в этой области. После окончательного прохода в рассматриваемой области будет находиться значение последнего элемента массива «$c». Эту проблему можно решить путем удаления ссылки unset($v) после окончания первого цикла.
Почему «грубо говоря, создавать свою копию»? Дела в том, что настоящего (реального) копирования данных не будет происходить до попытки изменить эти данные. Интерпретатором используется оптимизация copy-on-write. Исходя из этого понятно, почему создатели языка акцентируют внимание на том, что значение по ссылке необходимо передавать лишь в случае необходимости изменить это значение и не нужно использовать данный механизм для оптимизации. Из-за отсутствия четкого понимания устройства PHP изнутри очень часто и возникают проблемы миро-оптимизации или псевдо-оптимизации. Хотелось бы заметить, что в PHP массивы хранятся при использовании внутренних хэш-таблиц Zend. Эти таблицы сами занимают определенный объем памяти. Вы уже знаете, что лучше всего сохранять копии всех документов на сменных носителях, например на флешках kingston datatraveler. Память выделяется блоками. В PHP массивы реализуют непосредственно возможности массивов, а также списков, хэш-таблиц, коллекция, словарей, стека, очереди и так далее. Поэтому они очень удобны в использовании, но в то же время достаточно тяжелые.

3. strpos используется для возвращении позиции символа. Если брать непосредственно наш случай, то это первый символ. Символы не нумеруются и нумерация идет с 0, поэтому возвращаемое значение равно 0. В условии это интерпретируется, как FALSE.

4. Данная особенность описывалась в первом пункте. Здесь же предоставлена разно видной ситуации.

5. Ключ хэша (массива) предоставляется либо строкой, либо целым числом. В приведенном примере все без исключения ключи равняются 0, а в массив будет записан лишь последний элемент.

6. Касательно этого примера стоит обратиться к справочной информации в раздел «приоритеты операторов». Операторы вычитания, сложения, конкатенации равнозначны, то есть имеют равный приоритет, поэтому и действия выполняются строга слева направо.
“String ”. 1 → “String 1”
“String ” + 1 → 1 при сравнении, так же как и при сложении числа и строки, строка приводится к численному типу
1. “ End” → “1 End”

7. Ошибки нельзя поймать с помощью конструкции try catch. При настойчивом желании возможно привести преобразования ошибок в исключения, если написать небольшую библиотеку.

8. Этот пункт не требует комментариев.

9. Массивы и работа с ними.
9.1. Функция isset() используется для проверки, определена переменная или нет, и что она не null. В данном примере isset() использована, для того, чтобы определить задано ли значение элемента массива с индексом «a». Если значение равно null, то функция вернет false.
9.2. В случае добавления в массив элемента без явного указания индекса, то PHP по умолчанию присваивает новому элементу ключ. Этот ключ равен наибольшему значению индекса плюс 1. Нужно всегда помнить, что это также верно и для массивов, которые содержат смешанные индексы.
9.3. Сложение массивов. В результате получится массив, который будет содержать в себе все элементы с уникальными ключами. Даже при условии, что значения сходны. Элементы с идентичными ключами, даже с разными значения будут входить лишь один раз, а значение будет браться из первого массива.
  • Тэги публикации
  • Пишет: Faiza (Гости) |
  • Сообщений: 0 |
  • 14 марта, 13:03
  • #1
All tihgns considered, this is a first class post
Добавить комментарий