Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> eval, проблема с отображением 
:(
    Опции темы
WhiteSpirit
Дата 23.10.2005, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 1.6.2005
Где: Челябинск

Репутация: нет
Всего: нет



Помогите разобраться с
Код

eval()


Предположим есть такаой код:
Код

<?php

$q=array(
"Первый",
"Второй",
"Третий"
);

function arr($w)
    {
     $output="";
     for ($i=0; $i<(count($w)-1); $i++)
      {
         $output=$output." \"".$w[$i]."\",";
        }
     $output=$output." \"".$w[$i]."\"";
     return $output;
    }
$out=arr($q);

function out($first, $second, $third)
    {
     echo $first." 1<br>";
     echo $second." 2<br>";
     echo $third." 3<br>";
    }

out(eval("$out;"));   
?>


eval() необходим для пепедачи параметров функции out().

Я понимаю что здесь проще передать параметры напрямую, но есди предположим я не знаю сколько входящих параметров будет, то здесь без этого не обойтись.

А проблема в следующем:
Parse error: syntax error, unexpected ',' in w:\home\invest-inform.ru\www\test.php(36) : eval()'d code on line 1

Warning: Missing argument 2 for out() in w:\home\invest-inform.ru\www\test.php on line 29

Warning: Missing argument 3 for out() in w:\home\invest-inform.ru\www\test.php on line 29
1
2
3

Это сообщение отредактировал(а) WhiteSpirit - 23.10.2005, 10:01
--------------------
To beer or no to beer
PM MAIL   Вверх
PARROT
Дата 23.10.2005, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Кавычки нужно экранировать.
Код

out(eval(\"$out;\"));  

http://ru3.php.net/manual/ru/function.eval.php
Помоему вот так:
Код

out(eval('$out;'));  


Это сообщение отредактировал(а) PARROT - 23.10.2005, 10:10


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
WhiteSpirit
Дата 23.10.2005, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 1.6.2005
Где: Челябинск

Репутация: нет
Всего: нет



Тогда выдает:

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in W:\home\Invest-inform.ru\www\phpE.tmp on line 36 Parse error: syntax error, unexpected $end in W:\home\Invest-inform.ru\www\phpE.tmp on line 41
Добавлено @ 10:18
Если с экранированными кавычками
Добавлено @ 10:19
А если

Код

out(eval('$out;'));  
то:
Warning: Missing argument 2 for out() in W:\home\Invest-inform.ru\www\php10.tmp on line 29 Warning: Missing argument 3 for out() in W:\home\Invest-inform.ru\www\php10.tmp on line 29 1
2
3
--------------------
To beer or no to beer
PM MAIL   Вверх
Dandik
Дата 23.10.2005, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 20.10.2005
Где: Раменское

Репутация: нет
Всего: нет



Попробуй так :
Код

out(eval($out));

Цитата
Я понимаю что здесь проще передать параметры напрямую, но есди предположим я не знаю сколько входящих параметров будет, то здесь без этого не обойтись.

используй функцию :
Код

list func_get_args() // возвращает  список всех аргументов, переданных функции при вызове

довольно удобно
PM MAIL WWW ICQ   Вверх
WhiteSpirit
Дата 23.10.2005, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 1.6.2005
Где: Челябинск

Репутация: нет
Всего: нет



Так тоже ошибка.

Parse error: syntax error, unexpected ',' in W:\home\Invest-inform.ru\www\php12.tmp(36) : eval()'d code on line 1 Warning: Missing argument 2 for out() in W:\home\Invest-inform.ru\www\php12.tmp on line 29 Warning: Missing argument 3 for out() in W:\home\Invest-inform.ru\www\php12.tmp on line 29 1
2
3
--------------------
To beer or no to beer
PM MAIL   Вверх
Dandik
Дата 23.10.2005, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 20.10.2005
Где: Раменское

Репутация: нет
Всего: нет



Так не легче :
Код

function out(){
    for($i=0; $i<func_num_args(); $i++)
        echo func_get_arg($i).",<br>";
}
out("Первый","Второй","Третий"); 

Сколько угодно переменных вставляй...
PM MAIL WWW ICQ   Вверх
WhiteSpirit
Дата 23.10.2005, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 1.6.2005
Где: Челябинск

Репутация: нет
Всего: нет



Мда... наверное легче.

Но все таки почему eval() то не работает, хотел бы разобраться.
--------------------
To beer or no to beer
PM MAIL   Вверх
Opik
Дата 23.10.2005, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



WhiteSpirit
потому что eval предназначен для других целей.
PM MAIL Skype   Вверх
WhiteSpirit
Дата 23.10.2005, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 1.6.2005
Где: Челябинск

Репутация: нет
Всего: нет



а нельзя ли ссылочку, где про это можно почитать подробнее?
Добавлено @ 12:14
И ещё, то есть как передача аргументов функции eval() использовать невозможно?
--------------------
To beer or no to beer
PM MAIL   Вверх
Opik
Дата 23.10.2005, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



WhiteSpirit
Ты используешь гитару как ударный инструмент? думаю вряд ли, так и не надо лепить eval куда попало.
http://ee.php.net/eval
Добавлено @ 12:17
http://ee.php.net/manual/ru/ref.funchand.php
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0495 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.