PHP — язык программирования для веба. Позволяет писать как в императивный код, так и объектно-ориентирова<wbr />нный.
Императивный стиль написания программы проще, так как более интуитивный. Объектно-ориентирова<wbr />нный подход требует предварительного освоения, понимания концепций, не являющихся интуитивно понятными.
Впрочем, не только PHP позволяет писать код в нескольких парадигмах, и даже смешивать их в одной программе.
У PHP хорошая справка, где расписана каждая функция. Причём есть вариант и на русском языке. При этом язык развивался очень долго силами сообщества, поэтому у различных фукнций может различаться формат задания аргументов. Это неудобно и обычно порождает у новичков вопросы. В этих случая лучше не докапываться до глубинного смысла, потому что его нет. Просто один человек так сделал, а другой по-своему.
PHP позволяет много вольностей в коде. Кому-то это нравится, а кому-то набивает шишки на лбу. Многие ругают PHP за это. Но в итоге именно программист несёт ответственность ( или не несёт ) за свой код. Зачастую выходит так, что чужие программы, написанные на PHP, очень трудно понять. И тогда простота языка делает его наоборот очень сложным.
Только практикой.
Если с нуля.
Шаг первый изучаете книгу.Лучше именно печатную книгу с примерами.Просто прочитываете.
Шаг второй. Повторно читаете выполняя примеры и добиваясь чтобы работало.
Шаг третий собственная разработка, лучше брать не очень масштабную чтобы не утонуть во времени.
Далее используйте готовые решения их много в сети.Приходит идея - перед реализацией забиваете в поиск "как сделать ..." и изучаете какие есть решения.
На разных этапах тестирования применяются разные инструменты. Для нагрузочного - одно, для модульного-другое и т.п.
Лично я больше всего писал модульных тестов.
Я использую библиотеку Qt и поэтому в моих проектах постоянно используется Qt Test Framework (он кстати позволяет тестировать пользовательский интерфейс, а это проблема для многих библиотек).
Но с другой стороны, если вы не используете Qt, то возможно вам будет удобней использовать google test или boost test framework. Для С++ я думаю наиболее предпочтителен boost, т.к. это почти тоже самое, что стандартная библиотека (если в следующем стандарте языка внезапно появятся модульные тесты - они будут мало отличаться от буста).
Статья про модульное тестирование и boost test framework.
Для просмотра исходного кода страницы можно нажать клавишу F12 или вызвать из меню браузера средства разработчика, в разных браузерах по разному
обычно меню сервис\Средства разработчика
В Edge ...\Средства разработчика
Если нет ошибок и переменные $Rtwo и $Rtree остаются пустыми, значит не выполнилось ни одно условие. Неплохо было бы взглянуть на значения остальных переменных, что бы знать, пос=чему ни один if не срабатывает.
А так, попробуйте во всех условиях заменить оператор and на &&. Они-то вроде как одинаковые, но у && приоритет выше. Поэтому в некоторых случаях эти два оператора могут давать различный результат.