Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2015, 08:14   #11
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Цитата:
Чтобы он возвращал строку
То-есть чтобы я мог использовать его и в качестве строки для вывода куда либо.
Чтобы я мог применить к возвращенному значению метод unsetSpace вот в таком виде
Просто никак.
Непросто - отказаться от строк, возвращать всегда объекты с разного рода волшебными методами и метками для вызова нужных носителей методов, что есть извращение ещё то...

Цитата:
$class->metod1($class->metod2($class->metod3($class->metod4($class->metod5("суперважная строка")))));
Ужос. Сделайте на Fluent'е.
Код:
class test{
	public $mystr='';

	public function unsetDot($string=false){
		$add=' блин';
		if($string)$this->mystr=$string.$add;
		else	$this->mystr.=$add;	
		return $this;
	}
	
	public function unsetSpace($string=false){
		$add=' даёте';
		if($string)$this->mystr=$string.$add;
		else	$this->mystr.=$add;
		return $this;
	} 
	
	public function __toString(){
		echo $this->mystr;
	} 
}

$a=new test;
echo $a->unsetDot('Ну вы')->unsetSpace();
$b=$a->unsetDot('Ну вы')->unsetSpace()->mystr;
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 09.02.2015, 10:36   #12
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

не пойму нафига эти мини методы и в результате такие длинные цепочки? Задолбаешься писать такое. Если нужно избавить строку от всего лишнего, то это можно сделать в одном методе.
Gorychev вне форума Ответить с цитированием
Старый 09.02.2015, 10:43   #13
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Цитата:
не пойму нафига эти мини методы и в результате такие длинные цепочки?
Например для формирования какого-то универсального запроса к любому типу хранилища.
Аля
Код:
$store->select()->from()->data()->where()->id(1)->limit(10)
Под капотом в зависимости от типа хранилища строится запрос к соответствующему хранилищу.

Цитата:
Если нужно избавить строку от всего лишнего, то это можно сделать в одном методе.
Если писать универсальную библиотеку то надо разбивать на малые методы.
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 09.02.2015, 11:16   #14
ВалекFCRK
Форумчанин
 
Регистрация: 04.06.2011
Сообщений: 120
По умолчанию

Цитата:
Сообщение от Gorychev Посмотреть сообщение
не пойму нафига эти мини методы и в результате такие длинные цепочки? Задолбаешься писать такое. Если нужно избавить строку от всего лишнего, то это можно сделать в одном методе.
К сожалению не получится) я упростил пример. естественно если бы мне нужно было только точки удалять и пробелы в одном методе бы сделал.
ВалекFCRK вне форума Ответить с цитированием
Старый 09.02.2015, 11:20   #15
ВалекFCRK
Форумчанин
 
Регистрация: 04.06.2011
Сообщений: 120
По умолчанию

Цитата:
Сообщение от mv28jam Посмотреть сообщение
Просто никак.
Непросто - отказаться от строк, возвращать всегда объекты с разного рода волшебными методами и метками для вызова нужных носителей методов, что есть извращение ещё то...


Ужос. Сделайте на Fluent'е.
Код:
class test{
	public $mystr='';

	public function unsetDot($string=false){
		$add=' блин';
		if($string)$this->mystr=$string.$add;
		else	$this->mystr.=$add;	
		return $this;
	}
	
	public function unsetSpace($string=false){
		$add=' даёте';
		if($string)$this->mystr=$string.$add;
		else	$this->mystr.=$add;
		return $this;
	} 
	
	public function __toString(){
		echo $this->mystr;
	} 
}

$a=new test;
echo $a->unsetDot('Ну вы')->unsetSpace();
$b=$a->unsetDot('Ну вы')->unsetSpace()->mystr;
Спасибо большое)
ВалекFCRK вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из списка вернуть объект класса? zl@dey Общие вопросы C/C++ 2 26.03.2012 22:14
Определение типа класса по переменной на объект этого класса при компиляции phomm Общие вопросы Delphi 24 08.04.2011 14:11
Шаблоны - нужно создать объект класса abc в котором вместо aa использовался бы объект класса fff? Farrel Общие вопросы C/C++ 2 13.11.2010 17:37
Как в базовом классе описать указатель на объект производного класса? MasterGH Общие вопросы C/C++ 3 16.11.2009 02:55
Как узнать, создавался ли уже объект класса? TwiX Общие вопросы Delphi 4 06.10.2009 09:44