Я думаю, что хорошо использовать оба варианта с самого начала. Boost предоставляет множество мощных функций, широко используется и имеет хорошую репутацию. Большинство вещей, которые он предоставляет, имеют те же общие концепции программирования, с которыми был разработан STL, поэтому в этом смысле это не должно быть очень запутанным.
Лучший способ научиться чему-либо - это использовать отличный код, а затем посмотреть, как он написан. Это хорошо сработало для меня с Boost. Прочитайте учебник по шаблонам, и вы будете вдохновлены новой силой, которую вы открыли в течение часа. Затем прочитайте заголовок Boost, который вы использовали некоторое время, и вы будете вдохновлены в течение нескольких недель.
Конечно, не ожидайте немедленного понимания этих внутренних функций - сначала я просто использовал библиотеки, не понимая, как вы построите что-либо из этого, и это нормально. Но в какой-то момент вы понимаете, что хотите написать что-то с похожим дизайном, и тогда вы начнете искать.
Если вы сделаете обратное и ограничитесь «C ++ как более безопасный C», то вы не будете подвержены всем этим мощным вещам, поэтому у вас не будет соблазна посмотреть и понять их, и поэтому вы будете писать довольно примитивный код и учиться медленнее.
РЕДАКТИРОВАТЬ: забыл, что у меня была другая мысль - взглянуть на предстоящий стандарт C ++ 0x тоже. Он включает в себя множество функций, которые возникли в Boost. То есть студенты, начинающие изучать C ++ через несколько лет, будут работать с этими концепциями с самого начала - вы могли бы сделать это и сегодня ...
В php нет подсказки типа для логических параметров (пока). Вы можете указать только имя класса или массив
.
Поэтому функция foo (bool $ b)
означает: «параметр $ b должен быть экземпляром класса 'bool' или null».
http://docs.php.net/language. oop5.typehinting :
Теперь функции могут заставлять параметры быть объектами (путем указания имени класса в прототипе функции) или массивами (начиная с PHP 5.1).
Как уже говорилось, работает только подсказка типа для массивов и объекта. Ваша функция может быть записана так:
public function nullify($force=FALSE){
$force=(bool)$force;
//further stuff
}
Подсказка типа PHP 5 ограничена определенным классом (или одним из его подклассов) или массивом. Вы не можете указать какие-либо другие скалярные типы.