Софтуерно Инженерство
Loading...
denislav.r avatar denislav.r 0 Точки

Equal words PHP

Здравейте,

Моля помогнете не мога да открия правилният синтаксис на една елементарна задача. 

На C# го знам  как е: word1 = Console.ReadLine().ToLower();   обаче на PHP не го намирам как може да стане по подобен начин, моля помогнете.

Ето го кода, който съм написал. 

<?php 
$word1 = readline();
$word2 = readline();
$word1 = strtolower(word1);
$word2 = strtolower(word2);

if ($word1 == $word2)  
{
    echo 'yes';
}
 else {
echo 'no';    
}

Тагове:
svetoslav_0 avatar svetoslav_0 586 Точки

Мисля, че правилният синтаксис трябва да изглежда така:

$word1 = strtolower($word1);
$word2 = strtolower($word2);

0
denislav.r avatar denislav.r 0 Точки

Така е,

нали и аз това съм написал, но  ми дава 0 точки във judge

0
21/01/2018 13:00:34
svetoslav_0 avatar svetoslav_0 586 Точки

Този код, който си дал със сигурност няма да ти даде 0/100, по-скоро нещо от типа 50/100. Ето така трябва да ти изгледа сорса според мен

<?php 
$word1 = readline();
$word2 = readline();
$word1 = strtolower($word1);
$word2 = strtolower($word2);

if ($word1 == $word2)  
{
    echo 'yes';
}
 else {
echo 'no';    
}

Разликата е съвсем малка, просто най-вероятно забравяш да укажеш, че word1 и word2 са променливи

0
denislav.r avatar denislav.r 0 Точки

Блягодаря ти, 

видях си грешката и чак от втория път ми даде 100/100

А има ли някакъв по-опростен начин за записване?

Например директно при входа: 

$word1 = readline().strtolower($word1);

0
21/01/2018 13:20:06
Thedi avatar Thedi 198 Точки

Здравей,

.strtolower в C# e lambda функция и в PHP няма такива. 
Като цяло не виждам как това, че си написъл 2 реда повече е трудно, но може да го направиш и така:
 

<?php 
$word1 = strtolower(readline());
$word2 = strtolower(readline());

if ($word1 == $word2)  {
    echo 'yes';
} else {
echo 'no';    
}


За още по кратко можеш и така: 

<?php 

if (strtolower(readline()) == strtolower(readline())) {
    echo 'yes';
} else {
    echo 'no';    
}


За още по кратко може и така:
 

<?php
echo strtolower(readline()) == strtolower(readline()) ? "yes" : "no";

 

Най важното е да го напишеш така, както най лесно ще се чете от теб или от другите който могат да използват кодът ти.
Както ти сам видя, беше изпуснал "$" и програмата ти не работеше. Въпроса е в кой от всичките случай ще ти е най лесно да намериш грешката си.Аз бих ти препоръчал от началото да пишеш подробно за да може лесно да виждаш какво се случва, а пък като напреднеш ще можеш да ги пишеш с доста по малко текст.


 

1
21/01/2018 14:32:17
Vesela_5 avatar Vesela_5 34 Точки

Ами аз го направих точно така, да преобразува в малки букви още при въвеждане на дума:

$word1 = strtolower(readline());

0
svetoslav_0 avatar svetoslav_0 586 Точки

Също става, даже по-добре. Две операции на един ред :)

0