Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывести переменную из функции
 
 автор: verg   (26.04.2010 в 21:36)   письмо автору
 
 

Здравсвуйте, помогите вывести переменныю которая находится в фукции чтот её можно было видеть в скрипте, чтоб её можно было бы вывести, вот пример то чего не могу сделать.

<?php
function foo() {
$content "Text";
}
//Сюда нужно вывести переменную $content
?>

  Ответить  
 
 автор: neadekvat   (26.04.2010 в 22:29)   письмо автору
 
   для: verg   (26.04.2010 в 21:36)
 

Вариант первый:
<?php
function foo() { 
    
$content 'Text';
    echo 
$content;
    return 
true;
}

foo() // вызов функции

Вариант второй:
<?php
function foo() { 
    
$content 'Text';
    return 
$content;
}

echo 
foo() // вызов функции

  Ответить  
 
 автор: verg   (26.04.2010 в 22:41)   письмо автору
 
   для: neadekvat   (26.04.2010 в 22:29)
 

Все равно за пределами функции я не могу использовать переменную $content , а мне нужно чтоб я мог выполнять любые действия с переменной $content вне функции, после того как функция была вызвана... Вызывать функцию я то умею ))

  Ответить  
 
 автор: neadekvat   (26.04.2010 в 22:44)   письмо автору
 
   для: verg   (26.04.2010 в 22:41)
 

Вам не кажется, что "вывести" и "сделать доступной в разных частях программы" - это несколько разные вещи?

Есть волшебное слово global
Узнали слово? Забудьте.

<?php
function foo() {  
    
$content 'Text'
    return 
$content
}

$someVar foo();

И пользуйтесь $someVar сколь душе угодно

Локальные переменные внутри функций должны таковыми оставаться.
Лично я вижу исключений только для переменных конфига и ошибок

  Ответить  
 
 автор: verg   (26.04.2010 в 23:03)   письмо автору
 
   для: neadekvat   (26.04.2010 в 22:44)
 

Мне нужно вывести именно ошибку... В моем, другом случае. Это я привел как пример...

  Ответить  
 
 автор: neadekvat   (26.04.2010 в 23:04)   письмо автору
 
   для: verg   (26.04.2010 в 23:03)
 

Покажите как есть

  Ответить  
 
 автор: verg   (26.04.2010 в 23:18)   письмо автору
 
   для: neadekvat   (26.04.2010 в 23:04)
 

function my_sms_send ($phones,$mes,$sender,$trans,$flash) {
#$phones="77059654263";
#$mes="Привет!\nкак дела?\nЧто Делаешь?";
#$sender="verg";
#$trans=0;
#$flash=0;

if ($trans==1)
{


$mes= ruslat($mes);
global $result;
$result = current(file("http://www.infobip.com/Addon/SMSService/SendSMS.aspx?user=login&password=pass&DataCoding=1&sender=$sender&SMSText=".urlencode($mes)."&IsFlash=$flash&GSM=$phones"));
//echo $mes;

}
else

{

$str = $mes; 
$str_ucs2 = iconv('cp1251', 'ucs-2', $str); 
for ( $i = 0, $result = ''; $i < strlen($str_ucs2); $i++ ) { 
    $result .= sprintf('%02X', ord($str_ucs2[$i])); 

#print $result;
$mes=$result;
global $result;
$result = current(file("http://www.infobip.com/Addon/SMSService/SendSMS.aspx?user=login&password=pass&DataCoding=8&sender=$sender&IsFlash=$flash&GSM=$phones&binary=$mes"));


}
}
#вывести $result чтоб я смог ней пользоваться, d ней будет либо номер ошибки либо id sms
echo $result;

  Ответить  
 
 автор: neadekvat   (26.04.2010 в 23:22)   письмо автору
 
   для: verg   (26.04.2010 в 23:18)
 

И чем же return $result не устраивает? Ведь функция и должна возвращать эту переменную как результат выполнения функции.

  Ответить  
 
 автор: verg   (26.04.2010 в 23:31)   письмо автору
 
   для: neadekvat   (26.04.2010 в 23:22)
 

А как мне тогда использовать этот код ошибки, мне надо её в переменную сохранить, а потом уж проверить её и всё такое, мне нужна переменая $result, её значение... а я его не как не могу взять из функции и сохрать в какой то переменной

  Ответить  
 
 автор: neadekvat   (26.04.2010 в 23:42)   письмо автору
 
   для: verg   (26.04.2010 в 23:31)
 

Вы сейчас серьезно? Нет, вот на полном серьезе говорите?
А попробовать то, что я уже n-ый пост показываю не судьба?

  Ответить  
 
 автор: verg   (26.04.2010 в 23:48)   письмо автору
 
   для: neadekvat   (26.04.2010 в 23:42)
 

1 часть:
function my_sms_send ($phones,$mes,$sender,$trans,$flash) { 
#$phones="77059654263"; 
#$mes="Привет!\nкак дела?\nЧто Делаешь?"; 
#$sender="verg"; 
#$trans=0; 
#$flash=0; 

if ($trans==1) 



$mes= ruslat($mes); 
global $result; 
$result = current(file("http://www.infobip.com/Addon/SMSService/SendSMS.aspx?user=login&password=pass&DataCoding=1&sender=$sender&SMSText=".urlencode($mes)."&IsFlash=$flash&GSM=$phones")); 
//echo $mes; 


else 



$str = $mes;  
$str_ucs2 = iconv('cp1251', 'ucs-2', $str);  
for ( $i = 0, $result = ''; $i < strlen($str_ucs2); $i++ ) {  
    $result .= sprintf('%02X', ord($str_ucs2[$i]));  
}  
#print $result; 
$mes=$result; 
global $result; 
$result = current(file("http://www.infobip.com/Addon/SMSService/SendSMS.aspx?user=login&password=pass&DataCoding=8&sender=$sender&IsFlash=$flash&GSM=$phones&binary=$mes")); 

return $result;


#вывести $result чтоб я смог ней пользоваться, d ней будет либо номер ошибки либо id sms 
echo $result;



2 часть вывод функции самой :
$i= my_sms_send ($phones,$msg,$idsender,$trans=1,$flash=0);
echo $i;

И не чего не появляется, ошибка не появляется, а если я просто вывожу в функции (1 часть) echo $result, то ошибка есть

  Ответить  
 
 автор: neadekvat   (26.04.2010 в 23:54)   письмо автору
 
   для: verg   (26.04.2010 в 23:48)
 

Во-первых, на форуме существует подсветка синтаксиса, ею следует пользоваться, выставляя в начале кода <?
Во-вторых, ваш код совершенно неудобоварим
Вам самому то нравится? Особенно вот этот кусочек веселый:
#print $result;
$mes=$result;
global $result;
$result = current(...);

return $result;

Если используете return - уберите global

  Ответить  
 
 автор: verg   (26.04.2010 в 23:58)   письмо автору
 
   для: neadekvat   (26.04.2010 в 23:54)
 

Кусочек не нравится, это я пока только настраиваю скрипт, потм конечно уберу, а global надо убрать... ошибка была в том что я не там вставил return не в тех скопка {}... потому что писал код гдет мсяц назад а сейчас вернулся... все работает. БОЛЬШОЕ СПАСИБО, neadekvat )))

  Ответить  
 
 автор: neadekvat   (27.04.2010 в 00:07)   письмо автору
 
   для: verg   (26.04.2010 в 23:58)
 

Старайтесь всегда писать сразу красивый и понятный, читабельный код.
Уверяю, одна из причин нынешней ошибки - смятый в кучу код.
Разгребайте
Удачи =)

  Ответить  
 
 автор: verg   (27.04.2010 в 00:48)   письмо автору
 
   для: neadekvat   (27.04.2010 в 00:07)
 

Вы правы, код смятый в кучю )))... из-за этого не мог быстро найти в чем проблемы была....

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования