Голосование
Какую CMS Вы предпочитаете
AtomX
Fapos CMS
Drunya CMS
Топ новостей
- Генератор аватарок в стиле пиксель-арт
- Скачать Fapos CMS 1.1.8 Бесплатно
- Цунами в Японии. Последствия.
- Предварительная инфа о FAPOS 1.1.9. Часть 2
- Описание версии CMS Fapos 0.9.9
- Новая версия Fapos 1.3
- Половина россиян не смогла отличить легальный контент
- Что есть Fapos CMS
- Убийца Apache у вас на пороге
- Открытое тестирование Fapos 0.9.9
Последние комментарии
Топ пользователей
Сайты на AtomX CMS
1 2
Перед прочтением спросить разрешение у родителей.
И так, сегодня конец рабочей недели и на меня, в свойственном мне, в это время, состоянии, нашло вдохновение, а почему бы не дать всем понять, что программирование это очень просто. Так как я встречал огромное количество людей, которые хотят, но боятся начинать учить эту бадягу. Конечно, я не говорю, что за неделю ты сможешь научиться писать полноценные программы, которые будут пользоваться нереальным спросом на мировом рынке, но запомни - КОДИНГ ЭТО ПРОСТО ШО ПИЗДЕЦ. А как ты думаешь по чему? Да по-тому, что человеку не свойственно придумать что-то действительно сложное вообще, так как тогда никто бы другой не допер что с этим делать. Так что выкинь из головы все что тебе туда напихали те, кому это выгодно. Байки о том как тяжело компьютерщикам рассказывают компьютерщики, не желающие конкуренции. Самое главное что ты должен сделать перед тем как продолжить читать - это честно признаться самому се
И так, сегодня конец рабочей недели и на меня, в свойственном мне, в это время, состоянии, нашло вдохновение, а почему бы не дать всем понять, что программирование это очень просто. Так как я встречал огромное количество людей, которые хотят, но боятся начинать учить эту бадягу. Конечно, я не говорю, что за неделю ты сможешь научиться писать полноценные программы, которые будут пользоваться нереальным спросом на мировом рынке, но запомни - КОДИНГ ЭТО ПРОСТО ШО ПИЗДЕЦ. А как ты думаешь по чему? Да по-тому, что человеку не свойственно придумать что-то действительно сложное вообще, так как тогда никто бы другой не допер что с этим делать. Так что выкинь из головы все что тебе туда напихали те, кому это выгодно. Байки о том как тяжело компьютерщикам рассказывают компьютерщики, не желающие конкуренции. Самое главное что ты должен сделать перед тем как продолжить читать - это честно признаться самому се
3442
0
Новые возможности PHP 5.4
Признаться, по правде, я думал, что в PHP 5.4 просто по латают дырки и добавят пару функций. Ну конечно же оптимизируют объектную часть, так как PHP превращается из шаблонизатора в настоящий язык программирования и без ООП ну никак. Но недавно узнал о новой языковой конструкции, которая меня просто поразила.
Это напомнило мне, чем то goto, но все же это не совсем оно. И я даже уже придумал кучу примеров где такая конструкция может быть весьма полезна.
На данный момент, даже в Fapos есть места, где было бы очень правильно использовать данную возможность.
Представляю вам trait.
Сразу пример из документации:
Это напомнило мне, чем то goto, но все же это не совсем оно. И я даже уже придумал кучу примеров где такая конструкция может быть весьма полезна.
На данный момент, даже в Fapos есть места, где было бы очень правильно использовать данную возможность.
Представляю вам trait.
Сразу пример из документации:
1
2
3
4
5
6
7
8
9
10
11
12
<?php trait ezcReflectionReturnInfo {
function getReturnType() { /*1*/ }
function getReturnDescription() { /*2*/ }
}
class ezcReflectionMethod extends ReflectionMethod {
use ezcReflectionReturnInfo;
/* ... */
}
class ezcReflectionFunction extends ReflectionFunction {
use ezcReflectionReturnInfo;?>
С тех самых пор, как я начал свой путь в программирование, мне все и вся твердили о том, что в PHP совершенно не стоит думать о потреблении оперативной памяти сервера. Мол PHP сам с этим справляется на Ура. Но так ли оно на практике? Я решил провести серию небольших эксперементов, в основном, для тестирования Fapos CMS, но результаты оказались интересными. По крайней мере, мне так кажется. И я решил опубликовать их, хотя бы как напоминание самому себе. Ну и, за одно, может будет кому то полезно.
Для дальнейшего тестирования нам понадобятся отладочные функции, которые собственно и будут показывать разницу в памяти, между запуском приложения и нужной нам точки в коде.
А теперь, вот так - сразу, небольшой тест
Для дальнейшего тестирования нам понадобятся отладочные функции, которые собственно и будут показывать разницу в памяти, между запуском приложения и нужной нам точки в коде.
1
2
3
4
5
6
<?php function memoryUsage($base_memory_usage) {
printf("Bytes diff: %s<br />\n", getSimpleFileSize(memory_get_usage() - $base_memory_usage));
}
function someBigValue() {
return str_repeat('SOME BIG STRING', 1024);
}?>
А теперь, вот так - сразу, небольшой тест
1
2
<?php echo 'Start';
memoryUsage($?>
Часто бывает так, что нам необходимо иметь что-то типа супер глобальной переменной, которую мы могли бы использовать в любом месте нашего приложения. Не правда ли, удобно? Кто-то использует для этих целей супер глобальные массивы PHP, но это совсем не профессионально и лучше, если об этом никто не узнает.
Сейчас я хочу рассказать об одном из предопределенных интерфейсов PHP - ArrayAccess, который позволяет работать с объектами как с массивами, что очень удобно, а в связке с паттерном Singletone, мы получаем нечто вроде суперглобального массива для хранения чего угодно в нашем приложении.
Что такое интерфейс? Это нечто вроде указания, какие методы должны обязательно присутствовать в классе, который связан с интерфейсом. На пример интерфейс ArrayAccess обязывает нас иметь в своем классе четыре метода
Сейчас я хочу рассказать об одном из предопределенных интерфейсов PHP - ArrayAccess, который позволяет работать с объектами как с массивами, что очень удобно, а в связке с паттерном Singletone, мы получаем нечто вроде суперглобального массива для хранения чего угодно в нашем приложении.
Что такое интерфейс? Это нечто вроде указания, какие методы должны обязательно присутствовать в классе, который связан с интерфейсом. На пример интерфейс ArrayAccess обязывает нас иметь в своем классе четыре метода
1
2
3
4
<?php /* Methods */
abstract public boolean offsetExists ( mixed $offset )
abstract public mixed offsetGet ( mixed $offset )
abstract public void offsetSet ( mixed $offset , mixed $?>
В PHP есть очень широкий набор функций для работы со строками. Я решил написать эту заметку как напоминание самому себе и другим она тоже окажется полезной. Здесь я опишу самые часто используемые функции для работы со строками в PHP.
Обрезание строк
Первый параметр - это строка, которую мы будем резать. Второй параметр - это позиция с которой мы начнем срез, а третий параметр - это количество символов, которое мы отрежим. То есть в данном примере функция вернет нам строку "ст".
Эта функция не корректно работает с юникодом. Для работы с UTF-8 используйте mb_subsr().
Это пример как отрезать участок, начиная с любой позиции и до самого конца строки.
Функция strlen(), так же имеет аналог для работы с UTF-8 - mb_strlen().
Поиск в строках
Функция strpos() возвра
Обрезание строк
1
2
<?php substr('строка', 0, 2);?>
Эта функция не корректно работает с юникодом. Для работы с UTF-8 используйте mb_subsr().
1
2
<?php mb_substr($str, 7, mb_strlen($str));?>
Функция strlen(), так же имеет аналог для работы с UTF-8 - mb_strlen().
Поиск в строках
1
2
<?php strpos('строка', 'р');?>
3706
0
Типы данных в PHP
Что же такое эти типы данных? Дело в том, что любые данные имеют тип. Вот какие есть типы данных:
boolean - логические true и false
integer - целое число(сокращенно int)
string - строка
float - число с плавающей точкой
array - массив
object - объект
resourse - ссылка на ресурс(например после выполнения некоторых функций)
Дело в том, что в PHP работа с типами данных имеет свои особенности. Например этот код хорошо это иллюстрирует
Хотя, казалось бы, что если первые два сравнения истины то и последнее тоже должно быть истинно. Дело в том, что мы сравнивали эти данные через 2 "=", а это означает сравнение без учета типов. В таком случае, любая строка истина, как и любое число больше нуля.
Для жесткого сравнения с учетом типов надо использовать 3 "=". Из-за такой не жесткой типизации в PHP бывают косяки в
boolean - логические true и false
integer - целое число(сокращенно int)
string - строка
float - число с плавающей точкой
array - массив
object - объект
resourse - ссылка на ресурс(например после выполнения некоторых функций)
Дело в том, что в PHP работа с типами данных имеет свои особенности. Например этот код хорошо это иллюстрирует
1
2
3
4
5
6
<?php $a = 1;
$b = 2;
$c = true;
if ($a == $c) echo 'да';
if ($b == $c) echo 'да';
if ($a == $b) echo 'нет';?>
Хотя, казалось бы, что если первые два сравнения истины то и последнее тоже должно быть истинно. Дело в том, что мы сравнивали эти данные через 2 "=", а это означает сравнение без учета типов. В таком случае, любая строка истина, как и любое число больше нуля.
Для жесткого сравнения с учетом типов надо использовать 3 "=". Из-за такой не жесткой типизации в PHP бывают косяки в
4719
0
Функции в PHP для чайников
Конечно может возникнуть вопрос, а зачем чайнику функции. У меня например чайник тоже без функций, даже без свистка
Ну ладно шутки в сторону.
Сначала я расскажу как создавать и использовать функции, а об их применении поговорим чуть поже. Функция это что-то вроде блока кода, который сам по себе не на что не влияет и не мешает выполнению другого кода. Код в функции бездействует пока вы к нему не обратитесь. Функция может так же возвращать данные. Приведу пару примеров.
Вот пример очень простой функции. Здесь имя test - это вымешленное имя функции, по которому мы будем к ней обращаться. $var1 и $var2 - тоже вымышленные имена, они только говорят о том, что функция будет принимать два параметра. Эта функция возвращает сумму этих двух параметров. Вот пример как можно ее использовать
Теперь в $summ у нас будет сумма двух чисел что мы передали. А можно и так
Ну ладно шутки в сторону.
Сначала я расскажу как создавать и использовать функции, а об их применении поговорим чуть поже. Функция это что-то вроде блока кода, который сам по себе не на что не влияет и не мешает выполнению другого кода. Код в функции бездействует пока вы к нему не обратитесь. Функция может так же возвращать данные. Приведу пару примеров.
1
2
3
<?php function test($var1, $var2) {
return $var1 + $var2;
}?>
1
2
<?php $summ = test(2, 3);?>
1
2
<?php $a = 2;?>
4550
0
Правила красивого кода
Конечно, многие могут сказать что красивый код это бесполезная затея. Главное что бы работал как надо. Но я позволю себе не согласиться с этим заключением. Возможно некоторые настроены скептически, по отношению к этой затее, по тому что думают - "Зачем коду программы красота". Но видите ли, кодстайл придуман не для красоты, а для упрощения восприятия кода не вооруженным взглядом. Сейчас объясню, что я имею виду. Любая программа, независимо от ее предназначения, будет отлаживаться или модифицироваться. Возможно вами, а возможно и кем то другим. И, если код не имет должного вида, сделать это будет очень сложно. Например,в больших программах это сложно делать даже если соблюдены все правила, а если оне не соблюдены, то отладка или модификация превращается в настоящий ад для программиста. Попробую показать пару маленьких примеров.
Вот. Парочка примеров, в
1
2
<?php for($i=0;$i<3;$i++)if($i<1)echo'bla';echo'bla';?>
1
2
<?php $a=33*8-23/2*7+78;$b++;$a=$b-25/3;$b=$a-3*4/2+45;?>
Вот. Парочка примеров, в
По чему именно в PHP, ведь регулярные выражения везде одинаковы? По тому, что я буду приводить конкретные примеры PHP функций и говорить обих особенностях. Конкретно будем рассматривать функцию preg_match(). Она может принимать на вход 2 обязательных параметра и один дополнительный. Первый параметр - это сама регулярка, второй - это строка, в которой осуществляется поиск, а третий необязательный параметр служит для записи в него найденых совпадений.
Регулярное выражение - это строка, в определенном формате, которая служит для поиска нужных шаблонов в тексте. А так как это строка,она должнабыть заключена в кавычки. Но это не все, формат регулярных выражений так же предусматривает заключение самого выражения в парные символы.
Пример
Как видно в примере, я использовал решетку, но это может быть и любой другой символ, не являющийся буквенно-циферным. Но я бы посоветовал всегда использовать решетку и не думать обэтом
Регулярные выражения м
Регулярное выражение - это строка, в определенном формате, которая служит для поиска нужных шаблонов в тексте. А так как это строка,она должнабыть заключена в кавычки. Но это не все, формат регулярных выражений так же предусматривает заключение самого выражения в парные символы.
Пример
Code:
'#регулярка#'
Как видно в примере, я использовал решетку, но это может быть и любой другой символ, не являющийся буквенно-циферным. Но я бы посоветовал всегда использовать решетку и не думать обэтом
Регулярные выражения м
25704
5
Классы в PHP для чайников
И так для начала, немного терминологии и азов, для того что бы дальше было проще. Класс - это нечто что может содержать в себе пользовательские функции(методы) и переменные(свойства). Повторим, функции в классе - это методы, а переменные - это свойства.
Пример:
Ключевое слово public перед методами и свойствами говорит о том что данный метод или свойство доступно из любого места. То есть оно открыто для использования, без каких либо ограничений. Вот список подобных ключевых слов:
public - открыто для использования везде
private - можно использовать только внутри данного класса
protected - можно использовать только внутри данного класса и его наследников и родителей.
Обращение к свойствам и методам классов можно делать
Пример:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php class MyClass {
//свойства класса
public $var1 = '1';
public $var2 = '2';
//методы класса
public function func1() {
}
public function func2() {
}
}?>
Ключевое слово public перед методами и свойствами говорит о том что данный метод или свойство доступно из любого места. То есть оно открыто для использования, без каких либо ограничений. Вот список подобных ключевых слов:
public - открыто для использования везде
private - можно использовать только внутри данного класса
protected - можно использовать только внутри данного класса и его наследников и родителей.
Обращение к свойствам и методам классов можно делать
1 2
Сейчас online: 104. Зарегистрированных: 0. Гостей: 104.
AtomX 2.8 Beta - Новая версия бесплатной CMS
AtomX 2.8 Beta - Новая версия бесплатной CMS
Программирование - что может быть проще.
Программирование - что может быть проще.
AtomX 2.8 Beta - Новая версия бесплатной CMS
AtomX 2.8 Beta - Новая версия бесплатной CMS
Написание простого вируса в блокноте
Что такое API и для чего они нужны
Классы в PHP для чайников
Написание простого вируса в блокноте