ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 09.01.2009, 01:33
Аватар для w.u.n.
w.u.n.
Познающий
Регистрация: 13.12.2008
Сообщений: 54
Провел на форуме:
217810

Репутация: 80
По умолчанию

Цитата:
Сообщение от Pashkela  
а вот так " {$kak[16]}" точно нельзя, неправильно, и небезопасно
это почему же?
 
Ответить с цитированием

  #12  
Старый 09.01.2009, 01:41
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

ну это, некрасиво как-то, щаз еще погуглю, так не помню
 
Ответить с цитированием

  #13  
Старый 09.01.2009, 01:46
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Цитата:
а вот так " {$kak[16]}" точно нельзя, неправильно, и небезопасно
Это один из двух одобренных в ZendFramework сбособов вставлять переменные в " строки.
 
Ответить с цитированием

  #14  
Старый 09.01.2009, 01:59
Аватар для ntldr
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

Цитата:
Сообщение от Pashkela  
ну это, некрасиво как-то, щаз еще погуглю, так не помню
наоборот красиво. ИМХО красивее
echo "ололо {$omg} привет" чем без скобок.

еще случай
тебе надо вывести строку "я-хакир"
$xak = "хак";
в лучшем виде будет echo "я-{$xak}ир";

а вообще форматный вывод решает

Последний раз редактировалось ntldr; 09.01.2009 в 02:03..
 
Ответить с цитированием

  #15  
Старый 09.01.2009, 02:07
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

Цитата:
тебе надо вывести строку "я-хакир"
$xak = "хак";
в лучшем виде будет echo "я-{$xak}ир";
Я бы так сделал:

тебе надо вывести строку "я-хакир"
PHP код:
$xak 'хак';
echo 
"я-$xakир"
 
Ответить с цитированием

  #16  
Старый 09.01.2009, 02:30
Аватар для ntldr
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

Цитата:
Сообщение от Pashkela  
Я бы так сделал:

тебе надо вывести строку "я-хакир"
PHP код:
$xak 'хак';
echo 
"я-$xakир"
да я не очень хороший пример привел. но читаемость моего варианта в разы лучше
 
Ответить с цитированием

  #17  
Старый 09.01.2009, 14:13
Аватар для d_x
d_x
Reservists Of Antichat - Level 6
Регистрация: 25.03.2008
Сообщений: 670
Провел на форуме:
4137635

Репутация: 2407


По умолчанию

Вариант с {} позволяет вставлять не только переменные, но и любые массивы или переменные из классов.
PHP код:
echo "абвг {$var[1]['str']} {$xxx->blabla['qwerty']}"
Это очень удобно для вывода переменных с использованием heredoc-синтаксиса.
 
Ответить с цитированием

  #18  
Старый 09.01.2009, 15:18
Аватар для oRb
oRb
Members of Antichat - Level 5
Регистрация: 09.05.2008
Сообщений: 304
Провел на форуме:
7875940

Репутация: 2362
По умолчанию

Можно все, вот только
PHP код:
echo '[0] => '.$array[0]."\n"
И читабельно, и работает быстрее, чем вариации типа:
PHP код:
echo "[0] => {$array[0]}\n"
 
Ответить с цитированием

  #19  
Старый 09.01.2009, 15:30
Аватар для oRb
oRb
Members of Antichat - Level 5
Регистрация: 09.05.2008
Сообщений: 304
Провел на форуме:
7875940

Репутация: 2362
По умолчанию

Сделал скриптик для примера:
PHP код:
<?php
function getmicrotime() 

    list(
$usec$sec) = explode(" "microtime()); 
    return ((float)
$usec + (float)$sec); 

define(N1000000);
for(
$i=0$i<N$i++)
    
getmicrotime();
    
$str "";
$array['a'] = 'efg';
$start getmicrotime();
for(
$i=0$i<N$i++)
    
$str 'abcd '.$array['a'].' hij';
echo 
getmicrotime() - $start"\n";

$str "";
$array['a'] = 'efg';
$start getmicrotime();
for(
$i=0$i<N$i++)
    
$str "abcd ".$array["a"]." hij";
echo 
getmicrotime() - $start"\n";

$str "";
$array['a'] = 'efg';
$start getmicrotime();
for(
$i=0$i<N$i++)
    
$str "abcd {$array['a']} hij";
echo 
getmicrotime() - $start"\n";

$str "";
$array['a'] = 'efg';
$start getmicrotime();
for(
$i=0$i<N$i++)
    
$str = <<<HD
    abcd {$array['a']} hij
HD;
echo 
getmicrotime() - $start"\n";

$str "";
$array['a'] = 'efg';
$start getmicrotime();
for(
$i=0$i<N$i++)
    
$str = <<<HD
    abcd $array[a] hij
HD;
echo 
getmicrotime() - $start"\n";

?>
Результаты:
Цитата:
0.789710998535
0.792525053024
1.04027700424
1.01121997833
1.00872707367
 
Ответить с цитированием

  #20  
Старый 09.01.2009, 16:51
Аватар для SMiX
SMiX
Участник форума
Регистрация: 25.07.2005
Сообщений: 246
Провел на форуме:
457850

Репутация: 174
По умолчанию

Глупо так делать выводы. Как минимум, нужно произвести этот тест на нескольких машинах и не 1 раз. Также стоит выделить расчёт каждого варианта в отдельный скрипт.
На моём сервере к примеру 2 вариант в 2 раза "быстрее" первого.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ