Комментарии: 6 PHP трюков, как сделать код короче http://www.codeisart.ru/blog/php-coding-tips-to-write-less-code/ Статьи по SEO, дизайну и программированию. Переводы на веб-тематику. Исследования и наработки в области интернет-технологий. Tue, 19 Sep 2017 15:34:18 +0000 hourly 1 http://wordpress.org/?v=3.9.2 Автор: Obazure http://www.codeisart.ru/blog/php-coding-tips-to-write-less-code/comment-page-1/#comment-278742 Sun, 10 Jan 2016 16:06:12 +0000 http://www.codeisart.ru/?p=429#comment-278742 насчет пункта 3.

Для проверки сотворил такое

<?php
/*
*создаю массив таргет размером 100 или может быть 101
*далее проверка двух циклов перебором
*и вывод….
*/
for($i = 0; $i <= 100; $i++)
{
$target[$i]=$i;
}

$i = 0;
while($i < 100) {
$source1[] = $target[$i];
$i += 2;
}
print_r ($source1);

for($i = 0; $i 0 [1] => 2 [2] => 4 [3] => 6 [4] => 8 … [45] => 90 [46] => 92 [47] => 94 [48] => 96 [49] => 98 )
Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10…[45] => 92 [46] => 94 [47] => 96 [48] => 98 [49] => 100 )

Итог: второй цикл (сокращенный) потерял первую переменную массива таргет.

]]>
Автор: Obazure http://www.codeisart.ru/blog/php-coding-tips-to-write-less-code/comment-page-1/#comment-278741 Sun, 10 Jan 2016 16:05:01 +0000 http://www.codeisart.ru/?p=429#comment-278741 насчет пункта 3.

Для проверки сотворил такое

<?php
/*
*создаю массив таргет размером 100 или может быть 101
*далее проверка двух циклов перебором
*и вывод….
*/
for($i = 0; $i <= 100; $i++)
{
$target[$i]=$i;
}

$i = 0;
while($i < 100) {
$source1[] = $target[$i];
$i += 2;
}
print_r ($source1);

for($i = 0; $i

в итоге получилось такое

Array ( [0] => 0 [1] => 2 [2] => 4 [3] => 6 [4] => 8 … [45] => 90 [46] => 92 [47] => 94 [48] => 96 [49] => 98 )
Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10…[45] => 92 [46] => 94 [47] => 96 [48] => 98 [49] => 100 )

Итог: второй цикл (сокращенный) потерял первую переменную массива таргет.

]]>
Автор: DropSQL http://www.codeisart.ru/blog/php-coding-tips-to-write-less-code/comment-page-1/#comment-158054 Wed, 06 Mar 2013 13:16:52 +0000 http://www.codeisart.ru/?p=429#comment-158054 Это приведет к увеличению времени выполнения, т.к. for самый медленный из операторов перебора

Ну во первых самый медленный foreach, а во вторых не так уж сильно и медленней будет, на что стоит обращать внимание

]]>
Автор: аноним http://www.codeisart.ru/blog/php-coding-tips-to-write-less-code/comment-page-1/#comment-82164 Sun, 03 Apr 2011 12:09:23 +0000 http://www.codeisart.ru/?p=429#comment-82164 «Используйте «for» вместо «while»»

Это приведет к увеличению времени выполнения, т.к. for самый медленный из операторов перебора

]]>
Автор: php-user http://www.codeisart.ru/blog/php-coding-tips-to-write-less-code/comment-page-1/#comment-56409 Wed, 03 Nov 2010 08:00:18 +0000 http://www.codeisart.ru/?p=429#comment-56409 Вот про название переменной как ${0}, узнал у вас. Помогли.

]]>
Автор: kein http://www.codeisart.ru/blog/php-coding-tips-to-write-less-code/comment-page-1/#comment-21557 Mon, 26 Jul 2010 11:25:09 +0000 http://www.codeisart.ru/?p=429#comment-21557 Можно добавить с появлением php 5.3

$b = $a?$a:$c; упрощается в $b = $a?:$c;

А так же теперь запрещено передавать ссылки в функции.
А объекты не копируются при присваивании и передают ссылку по умолчанию, для копирования нужно использовать метод clone.

]]>
Автор: Awilum http://www.codeisart.ru/blog/php-coding-tips-to-write-less-code/comment-page-1/#comment-14695 Mon, 16 Nov 2009 20:30:49 +0000 http://www.codeisart.ru/?p=429#comment-14695 Хорошая статья :) добавил ваш блог себе в ридер :)

]]>
Автор: Сотомайор http://www.codeisart.ru/blog/php-coding-tips-to-write-less-code/comment-page-1/#comment-2199 Sun, 21 Dec 2008 18:24:17 +0000 http://www.codeisart.ru/?p=429#comment-2199 >$ext = pathinfo(‘file.png’)['extension'];

а не легче ли использовать list() чем определять функции и иметь проблему с их областью видимости ?

]]>
Автор: Skaizer http://www.codeisart.ru/blog/php-coding-tips-to-write-less-code/comment-page-1/#comment-54 Tue, 26 Aug 2008 15:55:22 +0000 http://www.codeisart.ru/?p=429#comment-54 Bolzamo, по поводу

$ext = &a(pathinfo('index.php'), 'extension');

В $ext будет лежать именно ссылка на элемент массива, а не копия. Т.е. например:

$mass = array ('e1'=>'test1','e2'=>'test2');
$val = &a($mass,'e2');
echo $val;
$val = 'another_val';
echo $mass['e2'];

В первом случае результат будет ‘test2′ во втором ‘another_val’. С помощью этой ссылки мы можем обращаться к элементу массива, возвращаемого функцией.

Что касается функции &r, я думаю что эта реализация будет полезна, когда операции над объектом необходимо производить во многих участках кода. Соответственно, чтобы не создавать копию объекта каждый раз, можно передавать только ссылку на него. Лично я это именно так понял :)

]]>
Автор: Bolzamo http://www.codeisart.ru/blog/php-coding-tips-to-write-less-code/comment-page-1/#comment-53 Tue, 26 Aug 2008 09:44:10 +0000 http://www.codeisart.ru/?p=429#comment-53 По 4-му пункту:
Сокращенный код будет выглядеть так:

$ext = &a(pathinfo('index.php'), 'extension');

Я правильно понял?
Но зачем нужна функция &r()?

]]>
Автор: PHP кодер http://www.codeisart.ru/blog/php-coding-tips-to-write-less-code/comment-page-1/#comment-37 Wed, 20 Aug 2008 15:45:02 +0000 http://www.codeisart.ru/?p=429#comment-37 Сокращение кода часто ведёт к ухудшению понимания кода при беглом просмотре, так что 6-й пункт обязателен :)

]]>