ANTICHAT Forum
HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
НОВЫЕ ТОРГОВАЯ НОВОСТИ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

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

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

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

Репутация: 3338


По умолчанию

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

  #13  
Старый 09.01.2009, 01:46
nerezus
Флудер
Регистрация: 12.08.2004
Сообщений: 3,792
С нами: 11444066

Репутация: 2290


По умолчанию

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

  #14  
Старый 09.01.2009, 01:59
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
С нами: 9702986

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

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

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

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

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

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

Репутация: 3338


По умолчанию

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

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

  #16  
Старый 09.01.2009, 02:30
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
С нами: 9702986

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

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

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

  #17  
Старый 09.01.2009, 14:13
d_x
Постоянный
Регистрация: 25.03.2008
Сообщений: 670
С нами: 9541766

Репутация: 2407


По умолчанию

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

  #18  
Старый 09.01.2009, 15:18
oRb
Members of Antichat - Level 5
Регистрация: 09.05.2008
Сообщений: 304
С нами: 9477026

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

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

  #19  
Старый 09.01.2009, 15:30
oRb
Members of Antichat - Level 5
Регистрация: 09.05.2008
Сообщений: 304
С нами: 9477026

Репутация: 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
Участник форума
Регистрация: 25.07.2005
Сообщений: 246
С нами: 10944326

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

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



Предыдущая тема Следующая тема

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


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




ANTICHAT ™ © 2001- Antichat Kft.