[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Изменение выходных данных
maximka787
Привет мужики. У меня вопрос.

Вот есть например функция func1 возвращающая массив.

function func1()
{
return array(
'id' => 1,
'title' => 'Заголовок страницы номер 100',
'content' => 'Hello World!'
);
}

$b = func1();

Мне нужно НЕ ПЕРЕПИСЫВАЯ функцию изменять данные (только заголовок и контент) для одной из страниц и получать тот же массив на выходе. Что я делаю. Я создаю вторую функцию и в ней делаю необходимые манипуляции.

Сразу говорю, пример исключительно для понимания, а не для практики.

function func2($a)
{
if(isset($a['id']) && $a['id'] == 1)
{
$a['title'] = 'Заголовок главной страницы';
$a['content'] = 'Текст главной страницы';
}

return $a;
}

$b = func2(func1());


Я не знаю, как это называется, костыль или расширение функционала..

Вопрос вот в чем.
По моему это проще сделать используя ООП. Как думаете?

_____________
..Работает - не трогай!
Игорь_Vasinsky
херня какая-то

$b = func1();

switch($b['id']){
case 1 :
$b['title'] = 'any title';
$b['content'] = 'any content';
}


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
maximka787
Цитата (Игорь_Vasinsky @ 14.02.2017 - 09:21)
херня какая-то

Наверно ты не очень понял мой вопрос.
Мне нужно данные изменить между двумя функциями.
Это можно представить как шланг по которому вода течет из точки А в точу Б.
Нужно его перерезать и в середину вставить кран (функцию) smile.gif Образно выразился конечно.

То ты написал условия конкретные, а мне нужно написать ... бл я не знаю как это называется. Интерфейс может быть..

_____________
..Работает - не трогай!
Kusss
так что ли ?
function func1()
{
return array(
'id' => 1,
'title' => 'Заголовок страницы номер 100',
'content' => 'Hello World!'
);
}

function func2($a)
{
$new = $a;
if(isset($a['id']) && $a['id'] == 1)
{
$new['title'] = 'Заголовок главной страницы';
$new['content'] = 'Текст главной страницы';
}

return array($a, $new);
}

list($a, $new) = func2(func1());
maximka787
Kusss
Не совсем. Моя конструкция работает.
Вопрос в другом. Проще делать как я делаю, или для этого ООП гораздо легче использовать (наследование) или что там еще?

_____________
..Работает - не трогай!
Игорь_Vasinsky
нафига тут ооп ???????????

Цитата
бл я не знаю как это называется. Интерфейс может быть..

тем более тебе ооп не надо. вообще.

твой вариант работает и гуд.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
AllesKlar
Class A {
public function foo() {
return array(
'id' => 1,
'title' => 'Заголовок страницы номер 100',
'content' => 'Hello World!'
);
}

public function baz() {
return "I'm baz";
}
}


Class B extends A {
public function foo() {
$a = parent::foo();
if(isset($a['id']) && $a['id'] == 1) {
$a['title'] = 'Заголовок главной страницы';
$a['content'] = 'Текст главной страницы';
}

return $a;
}

}


$b = new B();
var_dump($b->baz());
var_dump($b->foo());


string 'I'm baz' (length=7)
array (size=3)
'id' => int 1
'title' => string 'Заголовок главной страницы' (length=50)
'content' => string 'Текст главной страницы' (length=42)


_____________
[продано копирайтерам]
maximka787
AllesKlar
Спасибо большое, смотрю класс. Как раз изучаю ООП smile.gif

_____________
..Работает - не трогай!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.