Здравствуйте!
Я только учусь,тапками сильно не кидайте,поиск юзал,туторы читал,все равно не понял.
В общем мне нужно написать класс который будет дописывать информацию в php файл.
И если входящей информации нет, то записать из предопределенных св-в класса.
Написал вот это, но не пойму как исправить ошибки.
Warning: Missing argument 2 for WriteIndexArticle::__construct(), called in W:\html\gtemp.php\www\section.php on line 71 and defined in W:\html\gtemp.php\www\section.php on line 50
Warning: Missing argument 3 for WriteIndexArticle::__construct(), called in W:\html\gtemp.php\www\section.php on line 71 and defined in W:\html\gtemp.php\www\section.php on line 50
Notice: Undefined variable: ArticleIndexFile in W:\html\gtemp.php\www\section.php on line 52
Notice: Undefined variable: ArticleIndexPrefix in W:\html\gtemp.php\www\section.php on line 53
Warning: fopen() [function.fopen]: Filename cannot be empty in W:\html\gtemp.php\www\FileCreateClass.php on line 14
Warning: fwrite(): supplied argument is not a valid stream resource in W:\html\gtemp.php\www\FileCreateClass.php on line 15
Warning: fclose(): supplied argument is not a valid stream resource in W:\html\gtemp.php\www\FileCreateClass.php on line 16
В общем,я то ли принцип конструкторов неправильно понимаю, то ли просто синтаксис неправильный. Помогите пожалуйста разобраться.
Что то немогу разобраться с регулярными выражениями.
Нужно чтобы из строки в массив собиралось все что находится между символами.
Почитал уроки,мало что понял.
Составил pattern '/^[mdas][1234567890]+[mdas]$/'.
Как я понимаю должен действовать следующим образом:искать упоминание одного из в первых скобках,затем пропуская символы из вторых скобок,найти следующее упоминание из третьих скобок.
Раньше я думал сделать подобное без использования регулярных выражений.Впринципе кое что получалось с помощью strpbrk().Но получалось не очень удобно,некрасиво и просто много лишнего было в коде.Конечно если бы функция strpbrk() могла бы и справа налево читать строку было б лучше,но увы.
Да и просто хочется разобраться с регулярными выражениями.
Модифицировать свой калькулятор, я решил таким образом, чтобы он мог решать вот такие как вы показали выражения введенные с одного поля формы.
На первый взгляд для этого не надо ничего делать, просто вывести переменную формы и php сам посчитает.
Но дело в том что я решил сделать его таким чтобы он игнорировал все случайно добавленные(введенные) символы, которые не относятся к калькулятору.
Можно было найти способ проще, но это для калькулятора лучше, а для моего обучения лучше будет вариант выбранный мной.
Калькулятор будет вычленять каждое число и знаки по своему порядку,т.е. как я сказал будет игнорировать лишние символы,буквы(опечатки). А затем собирать их в строку выводить и считать.
Конечно для самого калькулятора это как корове седло, но с другой стороны взгляните на Excel, это не калькулятор(больше), но я не знаю как в нем включить возможность, игнорирования не числовых и математических символов, автоматически, и вряд ли такое в нем есть.
Но не только это, можно ведь продолжить развивать этот инструмент.
Например научить его считать вещественные значения,примером:
9 яблок + 3 груши + 3 яблока + 10 груш + 1 груша и 1 яблоко = 13 яблок и 14 груш
До этого конечно как до Киева .... но ведь тут уже может быть какая то практическая реализация.
Впрочем тот код который я сделаю в ближайшее время, будет достаточно прост что пригодится в создании какой то программы и любой кому понадобиться это будет писать сам.
Поэтому это амбиции, выдумки, мечты.
В общем нужно это скорей мне одному. И не для этих высоких целей, а просто для обучения php.
Хотя в последнее время я стал зацикливаться, и сомневаюсь что разработка этого калькулятора развивает мои навыки php.
А теперь к конкретной проблеме.
Мне нужно сделать цикл, который в итоге повторял бы функцию "вычленения" до тех пор, пока её результат не станет нулевым.
Проблема заключается в том что мне никак не удается правильно создать цикл, то вообще не работает, то уходит в бесконечность.
вот так вот получилось, но не работает(Отобразить)
/*функция увеличивающая $i,в полном коде увеличивает аргумент массива в цикле
можно было воспользоваться циклом for, но с ним у меня тоже ничего не получилось*/
$LimitCode=0;//на всякий случай устанавливаю и чтобы наглядней было
function iTerator ($i,$LimitIterator,$Number,$LimitCode)//функция ограничения
{
global$Number,$LimitCode;
echo$LimitCode;
if($LimitIterator<$i)
{
$LimitCode=1;
}
elseif($Number[$i]== 0)
{
$LimitCode=1;
}
$LimitCodePlus=$LimitCode+1;
echo$LimitCodePlus;
}
do//пробный цикл
{
iPlus ($i);
iTerator ($i,$LimitIterator,$Number,$LimitCode);
echo$LimitCode;//выводит 1
}
while($LimitCode== 1);
/*но несмотря на вывод последней строки, цикл не останваливается,выводится следующий код:
0211211211211 ...
т.е. переменные имеют запланированные значения,но цикл игнорирует это*/
?>
И как это сделать правильно я не понимаю
Тут мне уже наверно лучше подойдет пример кода, потому что я уже как этот цикл, делаю одно и то же часами, и уже можно считать днями.
Я понял в чем была ошибка. Я считал что while действует до тех пор пока условие не выполнится. Прочитав описание цикла на официальном сайте мне дошло что все наоборот))
PS: Удивительно, каждый раз когда пишу сюда или собираюсь написать, решение приходит само, и ответы уже сразу после их появления кажутся очевидными.
Калькулятор потихоньку развивается,в обратном порядке по списку.
Сделал действия.Но увы не селектором каким нибудь,а пока только разными кнопками.
Не понимаю что нужно чтобы сделать знак действия переменной или как его менять.
Viper
Продолжим по порядку.
1.2.3.Все понятно.
4.Попробовал убрать название и использовать тип в виде переменной, увы так не работает почему-то.
5.Код написал с небольшим сторонним пинком друга.
6.Теперь относительно того что нужно, т.е. будет, дальше:
а) разобраться как убрать имя переменной.
б) ограничить ввод только цифр.
в) сделать обнуление чтобы можно было обновить страницу.
г) добавить действия и их выбор.
В общем делать я буду сам, но мне важны поправки и критика.
Мне как и многим, в принципе далеким от этого, людям приходится сталкиваться с этим языком.Самые мало существенные проблемы отнимают много времени,а более приходится обходить.Поэтому я решил что пора начать изучение этого языка.
И я решил что для получения фундаментального понимания, мне нужно сделать калькулятор.
Конечно было бы правильнее изучить несколько учебников и затем только начинать.
Но увы без понимания совсем ничего не запоминается,а примеры что попадались в учебниках какие то чрезмерно сложные или наоборот простые,но бессмысленные, или являются какими то хаками для CMS. Поэтому понимание приходит очень медленно.
В общем для начала я хочу сделать калькулятор следующего вида:
Я думаю вы уже заметили что здесь полное отсутствия понимания.Может я не туда написал,потому что хотелось больше чем просто получить готовый код,но более подходящей ветки я как то не нашел.