Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
cars.search(array(
'month' => 'ноябрь',
'year' => 3108));Правильно, надо написать 10 методов для поиска по дням, часам, цвету, году выпуска и так далее, и получится у нас класс из трех тысяч строчек, да ещё по двадцать проверок для каждой переменной делать, чтобы сервер захлебывался, пока парсит файл.
с тех пор я уверен, что лучше написать 2 умные функции, чем 4 «красивых и понятных»
3. Порядок и список аргументов в функциях/методах были составлены по одному принципу и сочетались с именем.
result = $object->getDateObject($date, $time);
$someobject->someaction($result);
%DTC
%DTC ; SF/XAK - DATE/TIME OPERATIONS ;1/16/92 11:36 AM
;;19.0;VA FileMan;;Jul 14, 1992
D I 'X1!'X2 S X="" Q
S X=X1 D H S X1=%H,X=X2,X2=%Y+1 D H S X=X1-%H,%Y=%Y+1&X2
K %H,X1,X2 Q
;
C S X=X1 Q:'X D H S %H=%H+X2 D YMD S:$P(X1,".",2) X=X_"."_$P(X1,".",2) K X1,X2 Q
S S %=%#60/100+(%#3600\60)/100+(%\3600)/100 Q
;
H I X<1410000 S %H=0,%Y=-1 Q
S %Y=$E(X,1,3),%M=$E(X,4,5),%D=$E(X,6,7)
S %T=$E(X_0,9,10)*60+$E(X_"000",11,12)*60+$E(X_"00000",13,14)
TOH S %H=%M>2&'(%Y#4)+$P("^31^59^90^120^151^181^212^243^273^304^334","^",%M)+%D
S %='%M!'%D,%Y=%Y-141,%H=%H+(%Y*365)+(%Y\4)-(%Y>59)+%,%Y=$S(%:-1,1:%H+4#7)
K %M,%D,% Q
[[UIBarButtonItem alloc] initWithTitle:@«GetAll»
style:UIBarButtonItemStyleBordered
target:self
action:@selector(downloadAll)];
rjCustomers = [customer.Name for customer in customers if customer.State == "RJ"]1. Нам нужна замена подстроки в строке. Самым очевидным вариантом будет такой: string.replace(from, to). Жаль, что в PHP он не осуществим.Ну, во-первых, «неосуществим» пишется слитно. А во-вторых, очень даже осуществим:
<?php
class Str
{
public $value;
public function __construct($value)
{
$this->value = $value;
}
public static function create($value)
{
return new self($value);
}
public function __toString()
{
return '' . $this->value;
}
public function replace($what, $with)
{
return self::create(str_replace($what, $with, $this->value));
}
}
function S($value)
{
return new Str($value);
}
$source = '1234567890';
$result1 = Str::create($source)->replace('456', 'xxx');
$result2 = S($source)->replace('89', 'ZZ');
echo "<pre>\n";
echo "source: '$source'\n";
echo "result1: '$result1'\n";
echo "result2: '$result2'\n";
echo "</pre>\n";
?>
source: '1234567890'
result1: '123xxx7890'
result2: '1234567ZZ0'
Имена методов и функций