Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 2
Регистрация: 03.01.2014
Сообщений: 8
1

Средствами PHP и с использованием ООП php создать реализацию следующего интерфейса:

10.01.2014, 20:31. Показов 2194. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
interface ArrayHelperInterface extends
IteratorAggregate,
ArrayAccess,
Countable {
 
/**
* @param ArrayHelperInterface|ArrayObject|array $array
*/
function __construct($array);
 
/**
* Creates a new array with the results of calling a provided function on every element in the ArrayHelperInterface.
* @param $callback
* @return ArrayHelperInterface
*/
public function map($callback);
 
/**
* Calls a function for each element in the ArrayHelperInterface.
* @param $callback
* @return void
*/
public function each($callback);
 
/**
* Returns true if at least one element in the array satisfies the provided testing function.
* @dev must finish iteration after first matching
* @param Closure|string $callback
* @return boolean
*/
public function some($callback);
 
/**
* Returns true if every element in the array satisfies the provided testing function.
* @param Closure|string $callback
* @return boolean
*/
public function every($callback);
}
В результате реализации интерфейса должно быть возможным корректное использование следующего кода.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
$array = new ArrayHelper($array);
 
$func = function ($key, $value, ArrayHelperInterface $array) {
static $i;
$i++;
$c = count($array);
if (is_string($key) && $c < $value) {
unset($array[$key]);
return true;
} else {
$array['_'.$i] = --$c;
return false;
}
};
 
$array->each($func);
 
var_dump(iterator_to_array($array));
/*
array(2) {
'_0' =>
int(0)
'_1' =>
int(0)
}
*/
 
$array->some($func);
 
var_dump(iterator_to_array($array));
/*
array(4) {
'_0' =>
int(0)
'_1' =>
int(0)
'_2' =>
int(1)
'_3' =>
int(2)
}
*/
 
$array->every($func);
 
var_dump(iterator_to_array($array));
 
/*
array(5) {
'_0' =>
int(0)
'_1' =>
int(0)
'_2' =>
int(1)
'_3' =>
int(2)
'_4' =>
int(3)
}
*/
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2014, 20:31
Ответы с готовыми решениями:

Переписать реализацию стека с использованием ООП
Найти элемент с заданным ключом в стеке . У меня написана программа эта через структуру . Нужно...

Средствами языка PHP создать страницу
Здравствуйте, готовлюсь к экзамену, вот попались такие вопросы, php вообще не помню. За помощь буду...

Создать папку на сервере средствами PHP
Необходимо на сервере открыть существующую папку, имя которой AllFolders. И создать в ней папку с...

Как создать файл средствами php?
Народ как создать файл с помощью PHP. В инете инфы не нашел, все говорят что нельзя... Но может...

4
177 / 125 / 28
Регистрация: 30.10.2013
Сообщений: 686
11.01.2014, 00:38 2
оберните код в PHP тэг, и что вы хотите добиться сием? И разве в PHP можно наследовать от интерфейсов... может я могу ошибаться, но вы неправильно понимаете что есть интерфейс, если хотите сделать такую реализацию
0
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
11.01.2014, 14:22 3
Цитата Сообщение от AmsTaFFix Посмотреть сообщение
И разве в PHP можно наследовать от интерфейсов...
А с каких пор нельзя? o_O
0
177 / 125 / 28
Регистрация: 30.10.2013
Сообщений: 686
13.01.2014, 11:30 4
прошу прощения, написал глупость.
0
0 / 0 / 2
Регистрация: 03.01.2014
Сообщений: 8
14.01.2014, 17:27  [ТС] 5
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
<?php
interface ArrayHelperInterface extends
IteratorAggregate,
ArrayAccess,
Countable {
 
/**
* @param ArrayHelperInterface|ArrayObject|array $array
*/
function __construct($array);
 
/**
* Creates a new array with the results of calling a provided function on every element in the ArrayHelperInterface.
* @param $callback
* @return ArrayHelperInterface
*/
public function map($callback);
 
/**
* Calls a function for each element in the ArrayHelperInterface.
* @param $callback
* @return void
*/
public function each($callback);
 
 
/**
* Returns true if at least one element in the array satisfies the provided testing function.
* @dev must finish iteration after first matching
* @param Closure|string $callback
* @return boolean
*/
public function some($callback);
 
/**
* Returns true if every element in the array satisfies the provided testing function.
* @param Closure|string $callback
* @return boolean
*/
public function every($callback);
}
 
 
     class ArrayHelper implements ArrayHelperInterface {
 
     function __construct($array){
       foreach($array as $key => $value) {
            if(is_array($value)){
                $value = new static($value);
            }
            $this->offsetSet($key, $value);}
                                           }
 
public function map($callback) {
            $func = function ($key, $value, ArrayHelperInterface $array) {
static $i;
$i++;
$c = count($array);
if (is_string($key) && $c < $value) {
unset($array[$key]);
return true;
    }  }
 
 
public function each($callback){
    $array->each($func);}
 
 
public function some($callback){
    $array->some($func);
                         }
var_dump(iterator_to_array($array));
/*
array(4) {
'_0' =>
int(0)
'_1' =>
int(0)
'_2' =>
int(1)
'_3' =>
int(2)
}
*/
}
 
 
public function every($callback){
                  $array->every($func);
             }
var_dump(iterator_to_array($array));
 
/*
array(5) {
'_0' =>
int(0)
'_1' =>
int(0)
'_2' =>
int(1)
'_3' =>
int(2)
'_4' =>
int(3)
}
*/
 
}
 
 
$array = new ArrayHelper($array);}
 
$func = function ($key, $value, ArrayHelperInterface $array) {
static $i;
$i++;
$c = count($array);
if (is_string($key) && $c < $value) {
unset($array[$key]);
return true;
} else {
$array['_'.$i] = --$c;
return false;
}
};
 
$array->each($func);
 
var_dump(iterator_to_array($array));
/*
array(2) {
'_0' =>
int(0)
'_1' =>
int(0)
}
*/
 
$array->some($func);
 
var_dump(iterator_to_array($array));
/*
array(4) {
'_0' =>
int(0)
'_1' =>
int(0)
'_2' =>
int(1)
'_3' =>
int(2)
}
*/
 
$array->every($func);
 
var_dump(iterator_to_array($array));
 
/*
array(5) {
'_0' =>
int(0)
'_1' =>
int(0)
'_2' =>
int(1)
'_3' =>
int(2)
'_4' =>
int(3)
}
*/
     }
?>
Добавлено через 11 минут
осталось только понять как описать функции map each some и every)) вторая часть кода(тестовая часть)
0
14.01.2014, 17:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.01.2014, 17:27
Помогаю со студенческими работами здесь

Нужно создать класс PHP (введение в ООП)
Создать класс, содержащий функцию работы со строкой (определение букв, входящих в строку более...

Файл с кодом php средствами php
Товарищи! Есть задача при помощи php кода (например, файл 1.php) создавать файл с php кодом и...

Загрузка следующих статей с использованием AJAX в single.php и page.php
Думаю это штука будет полезна многим. Есть такой код. Где-то пол года назад заказывал его у...

Создать запрос к базе 1c с использованием html и php
доброго времени суток! есть база данных 1с в домене, подключаемся с помощью приложения 1с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru