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

Форум PHP

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

 

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

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

тема: Проверка на существование переменной ?
 
 автор: shizik   (11.11.2004 в 17:31)   письмо автору
 
 

Сабж.
хочу в if'е проверить существует данная переменная или нет. Как это сделать ?

   
 
 автор: cheops   (11.11.2004 в 17:38)   письмо автору
 
   для: shizik   (11.11.2004 в 17:31)
 

Для этого предназначена функция isset():
<?php
  
if(isset($test))
  {
     echo 
"Переменная сущствует";
  }
  else
  {
    echo 
"Переменная не существует";
  }
?>


http://www.softtime.ru/dic/id_dic=261&id_group=9

   
 
 автор: chip   (11.11.2004 в 17:41)   письмо автору
 
   для: shizik   (11.11.2004 в 17:31)
 

. Проверка существования переменной.
. Выполняется такой контроль с помощью оператора IsSet().

Например: If (IsSet($MyVar)) echo "Такая переменная есть и ее значение $MyVar";

Если переменной $MyVar в данный момент нет, то есть ей нигде ранее в программе не присваивалось никакой значение, либо же она уже была удалена ранее при помощи специального оператора UnSet(), тот значение IsSet() при проверке устанавливается в ложь. В противном случае Вы будете иметь истинное значение оператора IsSet().

   
 
 автор: shizik   (11.11.2004 в 17:46)   письмо автору
 
   для: chip   (11.11.2004 в 17:41)
 

большое спасибо

   
 
 автор: shizik   (11.11.2004 в 17:55)   письмо автору
 
   для: shizik   (11.11.2004 в 17:46)
 

не могу понять. в чем ошибка ?

php_poll.php:

<?php
// En: Begin PHP Code / Fr: Debut code PHP
// Necessary Variables:

$RESULT_FILE_NAME "poll_data.txt";
    
// En: Absolute path and name to file contain poll data.
    // Fr: Chemin absolu (complet) et Nom du fichier contenant les donne.

$QUESTION "&#193;&#251;&#226;&#224;&#229;&#242; &#235;&#232; &#231;&#235;&#224;&#255; &#239;&#240;&#229;&#231;&#235;&#224;&#255; &#225;&#224;&#228;&#255;&#227;&#224; &#226; &#230;&#232;&#231;&#237;&#232; ?";
    
// En: Question Text.
    // Fr: Texte de la question.
$ANSWER = array("&#196;&#224;""&#205;&#229;&#242;""&#193;&#251;&#226;&#224;&#229;&#242; &#232; &#231;&#235;&#229;&#229;""&#192; &#236;&#237;&#229; &#239;&#238;&#245;""&#207;&#238;&#248;&#235;&#232; &#194;&#251; &#237;&#224;&#245;");
    
// En: All answer.
    // Fr: Reponses possibles

$IMG_DIR_URL "./vote";
    
// En: URL Directory of poll graphs.
    // Fr: URL du repertoire des images.

$REVOTE_TIME 3600;
    
// En: Time (second) after people can revote, use cookies.
    // Fr: Temps en second apres lequel une personne peut revoter.

// End  Necessary Variables section
/******************************************************************************/

if (! $vote && ! $result) {
    echo 
"<FORM METHOD=\"POST\">\n";
    echo 
"<TABLE WIDTH=100% BORDER=1><TR><TD><TABLE WIDTH=\"100%\" BORDER=0>\n";
    echo 
"<TR><TH>$QUESTION</TH></TR>\n";
    while (list(
$key$val) = each($ANSWER)) {
        echo 
"<TR><TD align=\"center\"><INPUT TYPE=\"radio\" NAME=\"answer\" VALUE=\"$key\"> $val</TD></TR>\n";
    } 
    echo 
"<TR><TD align=\"center\"><INPUT TYPE=\"Submit\" NAME=\"vote\" VALUE=\" Vote \"></TD></TR>\n";
    echo 
"<TR><TD align=\"center\"><INPUT TYPE=\"Submit\" NAME=\"result\" VALUE=\" See Result \"></TD></TR>\n";
    echo 
"</TABLE></TD></TR></TABLE></FORM>";
} else {

    
$file_array file($RESULT_FILE_NAME); // or error("Can not open \$RESULT_FILE_NAME");

    // En: Save result
    // Fr: Enregistre le resultat
    
if ($answer count($ANSWER) && $vote) {
        if (
count($file_array) < count($ANSWER))  {
            
$file_array = array("0\n""0\n""0\n""0\n""0\n""0\n""0\n""0\n""0\n""0\n");
        }
        
$old_answer $file_array[$answer];
        
$old_answer preg_replace("/\n\r*/"""$old_answer);
        
$file_array[$answer] = ($old_answer 1)."\n";

        
$file join(''$file_array);
        
$fp fopen("$RESULT_FILE_NAME""w"); //or error("Can not write \$RESULT_FILE_NAME");
        
flock($fp1);
        
fputs($fp$file);                                                     
        
flock($fp3);
        
fclose($fp);
        echo 
"rate saved";
    }

    
// En: Display result
    // Fr: Affiche le resultat
    
while (list($key$val) = each($file_array)) {
        
$total += $val;
    }

    echo 
"<h2>PHP Poll vote results :</h2>";
    echo 
"<TABLE CELLSPACING=2 CELLPADDING=1 BORDER=1>";
    echo 
"<tr><th>What</th><th>Percentage</th><th>Votes</th></tr>";

    while (list(
$key$val) = each($ANSWER)) {
        
$percent =  $file_array[$key] * 100 $total;
        
$percent_int floor($percent);
        
$percent_float number_format($percent1);
        
$tp += $percent_float;
        echo 
"<tr><td> $ANSWER[$key] </td><td><img height=9 src=\"$IMG_DIR_URL/vote_left.gif\"><img height=9 width=\"$percent_int\" src=\"$IMG_DIR_URL/vote_middle.gif\"><img height=9 src=\"$IMG_DIR_URL/vote_right.gif\"> $percent_float % </td><td>$file_array[$key]</td></tr>";
    }

    echo 
"</TABLE><br>";
}

?>


выдаются следующие сообщения:
Notice: Undefined variable: vote in C:\Localca\www\poll\2\php_poll.php on line 27

Notice: Undefined variable: result in C:\Localca\www\poll\2\php_poll.php on line 27

файл poll_data.txt существует и пуст

запускается вышеуказанный скрипт в следующем файле:



<HTML><HEAD><TITLE>International Sample Date</TITLE></HEAD>
<BODY BGCOLOR="white">

<BR><BR><P ALIGN="Center"><FONT FACE="Arial, helvetica" SIZE="+2" COLOR="#336699"><STRONG><EM>Sample / Examples</EM></STRONG></FONT></P><BR>

<CENTER>

<!-- En: execute poll / Fr: execute le sondage -->
<?php require "php_poll.php"?>

</CENTER>


<CENTER><BR><BR>
    <FONT FACE="Arial" SIZE=-2>
    <EM>&copy Copyright 2000 <A HREF="http://www.ftls.org/ftls.shtml">FTLS</A> (Tyndiuk Fr&eacute;d&eacute;ric). All rights reserved.
    <BR>FTLS's PHP Scripts Archive : <A HREF="http://www.ftls.org/php/">http://www.ftls.org/php/</A></EM></FONT>
</CENTER></BODY></HTML>

   
 
 автор: cheops   (11.11.2004 в 18:06)   письмо автору
 
   для: shizik   (11.11.2004 в 17:55)
 

Это не ошибки - это замечания, для того чтобы избавится от них следует поставить более жёсткие условия для директивы error_reporting в конфигурационном файле php.ini:
error_reporting  =  E_ALL & ~E_NOTICE & ~E_STRICT

На реальном сервере стоит примерно такое же значение.

http://www.softtime.ru/info/articlephp.php?id_article=24

   
 
 автор: shizik   (11.11.2004 в 18:52)   письмо автору
 
   для: cheops   (11.11.2004 в 18:06)
 

спасибо большое

   
Rambler's Top100
вверх

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