потому что у тебя $var2 не передаётся в четвёртый метод. в самом начале первого метода пропиши global $var2;
и всё норм будет.а в четвёртом методе это лишнее. и не вкладывай методы друг в друга. лучше просто вызывай один из другого. так стабильнее. можно вкладывать, но это может повлечь серьёзные ошибки в дальнейшем
да! видишь, у тебя первый метод сделан так, что он. когда его вызывают, декларирует второй метод. и когда ты его вызываешь второй раз, он снова пытается декларировать второй метод. но он уже задекларирован! второй раз нельзя!
Fatal error: Cannot redeclare method2()(previously declared in C:\xampp\htdocs\test.php:8) in C:\xampp\htdocs\test.php on line 8
Эта функция уже создана, второй раз нельзя. Поэтому лучше создавать функции там, где будет практически невозможно вернуться к этим строкам, для повторного "создания" функции. (Добавление)
ааааа, публичная - это означает, что её значение не сбросится, после выполнения функции, а останется. чтобы с ней можно было и потом работать. поэтому public $var2 здесь не катит...
переменная var2, хоть и объявлена в четвёртом методе публичной, но она почему-то не передаётся из первого метода (Добавление)
кстати, попробуйте вызвать первый метод ещё раз. сразу после его первого вызова, скажем. и вы поймёте, почему так делать нежелательно.
функции задаются отдельно. потому что если ты верхнюю по вложенности функцию вызовешь второй раз, то будет ошибка, потому что она попробует создать уже созданную функцию. лучше задавать их отдельно, без вложенностей, и просто вызывать одну функцию из другой (Добавление)
и ещё. ты вызываешь третий метод, используй в нём переменную $var1, которую ты не задал. нужно тогда прописать что-то вроде
1) Класс задаётся {} а не ()
2) Имя класса начинается с Заглавной буквы, и первой функции тоже. Желательно и всех остальных. (Добавление)
3) Функции задаются