|
|
|
Как превратить ассоциативный массив в набор переменных?
|
|||
|---|---|---|---|
|
#18+
Функция принимает набор параметров: private $prm = array( 'uploadDir' => 'uploads/', 'previewsDir' => 'previews/', 'maxNumberOfFiles' => 100, 'maxSpace' => '100M', 'maxSize' => '10M', 'allowedType' => array('jpeg', 'jpg', 'png', 'gif') ); Они используются по всей функции, но обращаться к ним через $this->$prm['uploadDir'] совсем не прикольно. Можно пересохранить во внутренний массив, тогда станет $prm['uploadDir'], что тоже бяка. Через '->' обращаться нельзя. Можно как-нибудь автоматически сделать из массива переменные: $uploadDir = 'uploads/' и т. д.? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 04:12 |
|
||
|
Как превратить ассоциативный массив в набор переменных?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 05:14 |
|
||
|
Как превратить ассоциативный массив в набор переменных?
|
|||
|---|---|---|---|
|
#18+
Shitbox2, extract($prm); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 05:52 |
|
||
|
Как превратить ассоциативный массив в набор переменных?
|
|||
|---|---|---|---|
|
#18+
Черт, я же читал про эту функцию. Только как увидел, про какой-то массив символьных переменных сразу подумал, что это как-то к кодировкам относится и пропустил) Ну а так, нормальная функция, сами пользуетесь часто, проблем не возникает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 07:13 |
|
||
|
Как превратить ассоциативный массив в набор переменных?
|
|||
|---|---|---|---|
|
#18+
Shitbox2, непользуемся плохая функция. засоряет область видимости переменными. по умолчанию перезапишет существующую переменную аналогичной из массива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 07:57 |
|
||
|
Как превратить ассоциативный массив в набор переменных?
|
|||
|---|---|---|---|
|
#18+
Это да, тоже подумал... Хоть переобзывай эти дурацкие $this->$prm['uploadDir']... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 15:54 |
|
||
|
Как превратить ассоциативный массив в набор переменных?
|
|||
|---|---|---|---|
|
#18+
Shitbox2Функция принимает набор параметров: private $prm = array( 'uploadDir' => 'uploads/', 'previewsDir' => 'previews/', 'maxNumberOfFiles' => 100, 'maxSpace' => '100M', 'maxSize' => '10M', 'allowedType' => array('jpeg', 'jpg', 'png', 'gif') ); Они используются по всей функции, но обращаться к ним через $this->$prm['uploadDir'] совсем не прикольно. Можно пересохранить во внутренний массив, тогда станет $prm['uploadDir'], что тоже бяка. Через '->' обращаться нельзя. Можно как-нибудь автоматически сделать из массива переменные: $uploadDir = 'uploads/' и т. д.? а зачем такой изворот? просто код $this->save_to($prm['uploadDir']) не является менее читабельным чем $this->save_to($uploadDir). А потом ещё, ключём массива может быть любая строка, а вот название переменной имеет в данном случае ограничения. Поэтому не каждое значение из массива можно вынести в одноимённую переменную. А потом ещё, представь, как программист, дописывающий/исправляющий код после тебя, будет искать в функции например из 150-200 строк откуда у тебя взялась переменная $uploadDir и что в ней записано, если ты где-то в начале функии вызовешь extract(). Просто я вот например в NetBeans пишу, так вот, она такую переменную мне точно не отловит, и не сможет показать из чего она появилась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 09:25 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38152307&tid=1464124]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
63ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 351ms |

| 0 / 0 |
