Подскажите как вкл/выкл переменые в PHP

Discussion in 'PHP' started by bedpass, 12 Mar 2011.

  1. bedpass

    bedpass New Member

    Joined:
    24 Nov 2009
    Messages:
    0
    Likes Received:
    2
    Reputations:
    0
    Собственно есть переменные
    $a
    $b
    Для них одно значение,скажем 10
    Скрипт выполняет так - сначала выполняет задачу для переменной "а", потом для переменной "b".

    Какие прописать команды, чтобы к примеру выставлении в конфиге "1" , он выполнял только часть кода для переменной "а", при "2" - "b", при "0" - весь скрипт целиком.
    Спасибо заранее.
     
  2. -=Zhenek=-

    -=Zhenek=- Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    Две функции делаешь. a и b простыми if проверяешь. если ноль вызываешь обе функции, если а то а если б то б.
    Можно без функций просто коды в конструкции if затолкать

    Это что я смог понять в первом посте (тз)
     
  3. bedpass

    bedpass New Member

    Joined:
    24 Nov 2009
    Messages:
    0
    Likes Received:
    2
    Reputations:
    0
    то и надо, а если в коде пхп это показать возможно.просто понял что надо if и else, но как 2 функции сделать понять не могу.
     
  4. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    вот так попробуй
     
  5. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    еще такой вариант =))
     
  6. bedpass

    bedpass New Member

    Joined:
    24 Nov 2009
    Messages:
    0
    Likes Received:
    2
    Reputations:
    0
    спасибо.но почему то не работает.возможно из за того, что значение переменной одно и тоже.(выполняет и то и то - при любых значениях)

    делал как:
    $conf=1 (к примеру)
    $c=0


    if ($conf==1){ echo $a; }
    elseif ($conf==2){ echo $b; }
    else { echo $c;}

    :(
     
  7. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    все дело в типе значения int или string

    PHP:
    <?
    $conf="2";

    if (
    $conf=="1"){ echo 1; }
    elseif (
    $conf=="2"){ echo 2; }
    else { echo 
    3;}
    ?>
    вернуло 2 - это пример при стринговом сравнении

    PHP:
    <?
    $conf="2";

    switch (
    $conf){
    case 
    '1':
    echo 
    1;
    break;

    case 
    '2':
    echo 
    2;
    break;

    default:
    echo 
    3;
    break;
    }
    ?>
    вернул 2

    PHP:
    <?
    $conf=1;

    switch (
    $conf){
    case 
    1:
    echo 
    1;
    break;

    case 
    2:
    echo 
    2;
    break;

    default:
    echo 
    3;
    break;
    }
    ?>
    вернул 1

    PHP:
    <?
    $conf="1";

    switch ((int)
    $conf){
    case 
    1:
    echo 
    1;
    break;

    case 
    2:
    echo 
    2;
    break;

    default:
    echo 
    3;
    break;
    }
    ?>
    вернул 1
     
  8. bedpass

    bedpass New Member

    Joined:
    24 Nov 2009
    Messages:
    0
    Likes Received:
    2
    Reputations:
    0
    Вот это помогло, то есть выполнилась сначала нужная переменная. Но потом - когда пошел новый цикл(скрипт зациклен с помощью
    "for ($i=0;$i<count($ids);$i++)
    { }"
    , опять началась выполнятся первая переменная.

    PHP:
    { }
    может в это тело надо вставлять if/else - но, не помогает. спасибо.
     
    #8 bedpass, 12 Mar 2011
    Last edited: 12 Mar 2011
  9. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    дай код который мучаешь.... так наверное понятней будет что у тебя там происходит...
     
  10. bedpass

    bedpass New Member

    Joined:
    24 Nov 2009
    Messages:
    0
    Likes Received:
    2
    Reputations:
    0
    PHP:
    $browser->navigate('http://site.ru/login/');
    $browser->wait_for(60,1);
    $input->set_value_by_name('user_email','vasya@mail.ru');$input->set_value_by_name('user_password','пароль');
    $element->click_on_element_by_inner_text('войти');
    $browser->wait_for(60,1);

    $id file("id.txt"); 
    $site="http://site.ru/?id=";
    $po="http://site.ru/use/"
    for (
    $i=0;$i<count($id);$i++)
    {

    $browser->navigate($site.$id[$i]);
    $browser->wait_for(60,1);
    $textarea->set_value_by_name('message_text','привет');
    $button->click_by_name('SendBtn');
    $browser->wait_for(120,1);



    $browser->navigate($po.$id[$i]);
    $browser->wait_for(60,1);
    $element->click_on_element_by_inner__text('Одобрить');
    $browser->wait_for(60,1);

    }
    Нужно, чтобы перменные $id и $po - выполнялись в соответствии заданного $conf 1, 2 или 3 (выполнять все)

    //Gifts: оформляйте код в тег [*PHP] (без звездочки)
     
    #10 bedpass, 12 Mar 2011
    Last edited by a moderator: 12 Mar 2011
  11. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    откуда берутся задания 1 2 3 ?
    может
    я так понимаю если задание 1 то выролняется

    PHP:
    $browser->navigate($site.$id[$i]); 
    $browser->wait_for(60,1); 
    $textarea->set_value_by_name('message_text','привет'); 
    $button->click_by_name('SendBtn'); 
    $browser->wait_for(120,1);
    а при 2

    PHP:
    $browser->navigate($po.$id[$i]); 
    $browser->wait_for(60,1); 
    $element->click_on_element_by_inner__text('Одобрить'); 
    $browser->wait_for(60,1);
    так понял?
     
  12. bedpass

    bedpass New Member

    Joined:
    24 Nov 2009
    Messages:
    0
    Likes Received:
    2
    Reputations:
    0
    да все верно, перменный 1,2,3 я не включал в код(тестил только у себя).сейчас попробую с $site

    зы все равно не работает :(
     
    #12 bedpass, 12 Mar 2011
    Last edited: 12 Mar 2011
  13. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    PHP:
    $conf="2";

    $browser->navigate('http://site.ru/login/'); 
    $browser->wait_for(60,1); 
    $input->set_value_by_name('user_email','vasya@mail.ru');$i  nput->set_value_by_name('user_password','пароль'); 
    $element->click_on_element_by_inner_text('войти'); 
    $browser->wait_for(60,1); 

    $id file("id.txt");  
    $site="http://site.ru/?id="
    $po="http://site.ru/use/";  
    for (
    $i=0;$i<count($id);$i++) 


    if (
    $conf=="1"){ 
    nsite();
     } 
    elseif (
    $conf=="2"){ 
    npo();
     } 
    else { 
    nsite();
    npo();
    }



    function 
    nsite(){
    $browser->navigate($site.$id[$i]); 
    $browser->wait_for(60,1); 
    $textarea->set_value_by_name('message_text','привет'); 
    $button->click_by_name('SendBtn'); 
    $browser->wait_for(120,1); 
    }

    function 
    npo(){
    $browser->navigate($po.$id[$i]); 
    $browser->wait_for(60,1); 
    $element->click_on_element_by_inner__text('Одобрить'); 
    $browser->wait_for(60,1); 
    }
     
  14. bedpass

    bedpass New Member

    Joined:
    24 Nov 2009
    Messages:
    0
    Likes Received:
    2
    Reputations:
    0
    Работает..::BARS::. - спасибо, огромное
     
  15. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    PHP:
    function nsite(){
    global 
    $site,$id[$i];
    $browser->navigate($site.$id[$i]); 
    $browser->wait_for(60,1); 
    $textarea->set_value_by_name('message_text','привет'); 
    $button->click_by_name('SendBtn'); 
    $browser->wait_for(120,1); 
    }

    function 
    npo(){
    global 
    $po,$id[$i];
    $browser->navigate($po.$id[$i]); 
    $browser->wait_for(60,1); 
    $element->click_on_element_by_inner__text('Одобрить'); 
    $browser->wait_for(60,1); 
    }
    исправь на это...

    переменные в функции должны быть взяты из вне по идеи...

    а вообще это быдло код =)))
     
  16. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    .::BARS::. предсказываю, что последний вариант работать не будет.
     
    _________________________
    1 person likes this.
  17. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    ну да...

    global $id =))) а не $id[$i]


    PHP:
    $conf="2"

    $browser->navigate('http://site.ru/login/');  
    $browser->wait_for(60,1);  
    $input->set_value_by_name('user_email','vasya@mail.ru');$i    nput->set_value_by_name('user_password','пароль');  
    $element->click_on_element_by_inner_text('войти');  
    $browser->wait_for(60,1);  

    $id file("id.txt");   
    $site="http://site.ru/?id=";  
    $po="http://site.ru/use/";   
    for (
    $i=0;$i<count($id);$i++)  
    {  

    if (
    $conf=="1"){  
    nsite($site,$id[$i]); 
     }  
    elseif (
    $conf=="2"){  
    npo($po,$id[$i]); 
     }  
    else {  
    nsite($site,$id[$i]); 
    npo($po,$id[$i]); 


    }  

    function 
    nsite($sitef,$idf){ 
    $browser->navigate($sitef.$idf);  
    $browser->wait_for(60,1);  
    $textarea->set_value_by_name('message_text','привет');  
    $button->click_by_name('SendBtn');  
    $browser->wait_for(120,1);  


    function 
    npo($pof,$idf){ 
    $browser->navigate($pof.$idf);  
    $browser->wait_for(60,1);  
    $element->click_on_element_by_inner__text('Одобрить');  
    $browser->wait_for(60,1);  
     
  18. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    2,041
    Likes Received:
    933
    Reputations:
    199
    и global $browser, $element,$textarea,$button ...
    PS А что это за классы? Можно сорц?
     
    _________________________
  19. Radish

    Radish New Member

    Joined:
    9 Jan 2011
    Messages:
    20
    Likes Received:
    2
    Reputations:
    2
    Если в $conf будут только цифры, то лучше их записывать цифрами, а не строкой, сравнение цифр идет быстрее в разы.