[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как можно сократить код?
Godwarlock
Есть код такого вида


if($user_data_kukla['body'] == 0)
{
echo "

<body><![CDATA["
.$user_data_kukla['body']."]]></body>
<body_url><![CDATA[/image/male/armor/body/0.swf]]></body_url>


"
;
}
if($user_data_kukla['head'] == 0)
{
echo "

<head><![CDATA["
.$user_data_kukla['head']."]]></head>
<head_url><![CDATA[/image/male/armor/head/0.swf]]></head_url>


"
;
}
if($user_data_kukla['eye'] == 0)
{
echo "

<eye><![CDATA["
.$user_data_kukla['eye']."]]></eye>
<eye_url><![CDATA[/image/male/armor/eye/0.swf]]></eye_url>


"
;
}


При этом помимо значений с 0, есть еще 1 и возможно даже 50, то есть получается очень много кода для сравнения со значениями. Как можно значительно сократить код?
Zuenf
Использовать цикл для обработки:

foreach($user_data_kukla as $key => $value){
echo "<".$key."><![CDATA[".$value."]]></".$key.">
<"
.$key."_url><![CDATA[/image/male/armor/".$key."/".$value.".swf]]></".$key."_url>
"
;
}
volter9
Godwarlock
Можно вот так (как предложил Zuenf, только printf):

foreach ($user_data_kukla as $key => $value) {
printf(
'<%s><![CDATA[%s]]></%s>
<%s_url><![CDATA[/image/male/armor/%s/%s.swf]]></%s_url>'
,
$key, $value, $key, $key, $key, $value, $key
);
}


_____________
Мой блог
Zuenf
Тогда лучше наверное вот так:

foreach ($user_data_kukla as $key => $value) {
printf(
'<%1$s><![CDATA[%2$s]]></%1$s>
<%1$s_url><![CDATA[/image/male/armor/%1$s/%2$s.swf]]></%1$s_url>'
,
$key, $value
);
}
Godwarlock
%1$s а что это за знаки инопланетные?))
Godwarlock
dsZuenf
И по поводу твоего кода

  foreach($user_data_kukla as $key => $value){
echo "<".$key."><![CDATA[".$value."]]></".$key.">
<"
.$key."_url><![CDATA[/image/male/armor/".$key."/".$value.".swf]]></".$key."_url>
"
;
}


$user_data_kukla содержит не только то, что нужно вывести в $key. Или я не совсем понял как работает скрипт. Можете объяснить если не затруднит как он работает?
Zuenf
Цитата
%1$s а что это за знаки инопланетные?))

читать тут.
Цитата (Godwarlock @ 2.02.2015 - 03:01)
dsZuenf
И по поводу твоего кода

  foreach($user_data_kukla as $key => $value){
            echo "<".$key."><![CDATA[".$value."]]></".$key.">
                    <"
.$key."_url><![CDATA[/image/male/armor/".$key."/".$value.".swf]]></".$key."_url>
          "
;
    }


$user_data_kukla содержит не только то, что нужно вывести в $key. Или я не совсем понял как работает скрипт. Можете объяснить если не затруднит как он работает?
Godwarlock
Во спасибо большое)
Godwarlock
А вот еще такой вопрос. Почему не работает так скрипт?

foreach($user_data_kukla as $key => $value){
echo "<".$key."><![CDATA[".$value."]]></".$key.">
<"
.$key."_url><![CDATA[/image/male/armor/".$key."/".$value.".swf]]></".$key."_url>
"
;
}

if($user_data_kukla['type_weapon'] == 1)
{

foreach($user_data_kukla['r_weapon'] == $value)
{
echo "<r_weapon><![CDATA[".$value."]]></r_weapon>
<r_weapon_url><![CDATA[/image/weapon/sword/"
.$value.".swf]]></r_weapon_url>

"
;
}
}


Выдаёт такую ошибку

Parse error: syntax error, unexpected ')'
Hello
foreach($user_data_kukla['r_weapon'] == $value)

Откуда такой синтаксис?

_____________
VPS от 5$, первые 2 месяца - бесплатно.
Игорь_Vasinsky
Цитата
Откуда такой синтаксис?

откуда такая логика biggrin.gif

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Godwarlock
Подскажите тогда как правильнее) Логика такова, что если r_weapon в массиве $user_data_kukla равен 0, единице и тд, то переадем значение в value, а оттуда уже подставляем результат в ссылку) И вообще немного перепутал

foreach($user_data_kukla['r_weapon'] => $value)
{
echo "<r_weapon><![CDATA[".$value."]]></r_weapon>
<r_weapon_url><![CDATA[/image/weapon/sword/"
.$value.".swf]]></r_weapon_url>

"
;

Вот так должно быть, но выдает
syntax error, unexpected T_DOUBLE_ARROW in
Godwarlock
Поможет кто?)
volter9
foreach($user_data_kukla['r_weapon'] as $value) {
echo "<r_weapon><![CDATA[$value]]></r_weapon>
<r_weapon_url><![CDATA[/image/weapon/sword/
$value.swf]]></r_weapon_url>";
}


foreach()

_____________
Мой блог
Godwarlock
Warning: Invalid argument supplied for foreach()
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.