Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Разбирали с программистом бухгалтерский сленг. Пришлось даже залезть в Даля, чтобы выяснить происхождение некоторых слов. Выяснилось, что «крыжить» происходит от «крыж», то есть крест, и исходно значило «помечать крестом», хотя сейчас большинство бухгалтеров крыжат галочками. Заодно разобрали слово «херить», происходящее от «хер», старого названия буквы Х, и означающее по Далю перечеркивать или помечать косым крестом. Программист подумал и сделал вывод, что херить – это крыжить под углом пи на 4.
$arr1 + $arr2
отличается от array_merge($arr1, $arr2)
virtual int GetA() = 0;
virtual int GetB() = 0;
virtual int GetAPlusB() {
return GetA() + GetB();
}
class SomeClass
{
public function __construct($arg)
{
switch (getype($arg)) {
case 'integer':
// integer argument
break;
case 'string':
// string argument
break;
default:
// other cases
}
}
public function someMethod()
{
switch (func_num_args()) {
case 0:
// no argument
break;
case 1:
// one argument
break;
default:
// other cases
}
}
}
$obj = new SomeClass(1); // integer behavior of constructor
$obj->someMethod(2); // one argument behavior
function constructObject($class, $args) {
global $classes;
$constructor_name = "{$class}_construct";
if (isset($classes[$class]['parent']) {
$object['__class'] = array_merge($classes[$class]['parent'], $classes[$class]);
} else {
$object['__class'] = $classes[$class];
}
$constructor_name(&$object, $args);
return $object;
}
function invokeObjectMethod(&$object, $method, $args) {
$method_name = $object['__class']['name']
. '_'
. $object['__class']['methods']['method'];
return $method_name($object, $args);
}
function someClass_construct($this, $args) {
// ...
}
function someClass_someMethod($this, $args) {
// ...
}
$classes = array(
'someClass' => array(
'name' => 'someClass'
, 'methods' => array (
'someMethood' => 'someMethod'
)
)
);
$obj = constructObject('someClass', array('someParam'));
invokeObjectMethod($obj, 'someMethod', array('onterParam'));
$classes = array(
'someClass' => array(
'methods' => array (
'someMethood' => 'someMethod'
)
)
);
$func_name = $class.'_'.$method; $func_name($obj, $args);
, потом по каким-то причинам сделал «таблицу» — это тоже DMT? и разместить по диагонали, что случайно маловероятно.
это только круг
на должность веб-верстальщика. Можно спросить его насчет IE6
Когда я говорил, что нужно писать технические статьи, вы продолжали читать хабр и обсуждать компании. Теперь у нас хабр в шоколаде, а технические статьи никто не пишет.ИМХО, много говорить не надо. Лучше бы автор написал техническую статью на эту тему — чем отличается интерфейс от абстрактного класса — чем мусолил тезисы «а я говорил!..». Не понимаю, за что народ плюсует такую откровенную попсу.
Когда я говорил…