Запитване за задачата: Dump Variable
Удачно ли е ако запазя предварителна стойност/и в променливата и направя проверката за число или тип ? Смятам, че по-добре заявката да е динамична.
Удачно ли е ако запазя предварителна стойност/и в променливата и направя проверката за число или тип ? Смятам, че по-добре заявката да е динамична.
За толкова проста задача не мисля че е фатално да не ги запазиш във променливи, но от към КПК гледна точка е по-добре да ги декларираш предварително и после да ги провериш. Дори кодът ще е по-кратък за конкретната задача:
$string = "Todor";
$int = 4;
$float = 3.14;
$array = array("Red", "Blue", "Green");
$object = (object)[4,23];
$variables = array($string, $int, $float, $array, $object);
това може да стане дори с един ред:
$variables = array("Todor", 4, 3.14, array("Red", "Blue", "Green"), (object)[4,23]) ;
Но ако се случи така, че след това не проверим типа, а искаме директно да направим нещо с данните в масива и даде грешка, ще е много по-лесно да я открием ако данните са ни декларирани преди това във променливи.
В крайна сметка по условие изрично ни е дадено "Write a PHP script DumpVariable.php that declares a variable", че трябва да ги декларираме.
Въпросът беше дали има начин потребителят да въвежда данните и да му показва съответния резултат?
Мъчех го с: fgets(STDIN) , но като въведа 15 - дава string. Иначе с предварително декларирани съм я решил отдавна.
Прощавай, разбрал съм те грешно.
fgets(STDIN) ти връща string и трябва да го cast-неш към int и тогава да го подадеш. Тоест трябва да направиш логика която проверява дали целия стринг който получаваш е само от цифри и ако е така, да го cast-не към int със intval(). Също така трябва да развиеш логика която да проверява дали данните които са ти подадени като string не са масив или обект, което още малко удължава решението.
Ако искаш да си поиграеш, защо не. Задачата изисква да ги декларираш, независимо дали ще са hardcoded или ще се приемат от потребителя. И двата начина са верни, просто вторият е доста по дълъг като решение.
Ясно, благодаря!