Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: array_walk че-то не получается
 
 автор: ChieFSS   (01.02.2008 в 18:30)   письмо автору
 
 

есть функция в классе 'test'
    public function setHtmlspecialchars(&$value)
    {
        $value = htmlspecialchars($value);
    }


пытаюсь провести весь массив через неё:
array_walk($news, array($test, 'setHtmlspecialchars'));


пишет: Warning: htmlspecialchars() expects parameter 1 to be string, array given

Массив такой:
            $news[] = array('id'   => $row['id'],
                            'name' => $row['name'], 
                            'body' => $row['body'], 
                            'date' => $row['date']
                            );


Как провести через функцию setHtmlspecialchars 'name' и 'body' ?

   
 
 автор: kasmanaft   (01.02.2008 в 18:39)   письмо автору
 
   для: ChieFSS   (01.02.2008 в 18:30)
 

array_walk($news, array($test, 'setHtmlspecialchars')) - кто такой $test? И зачем он там? :)
(собсно, зачем вообще этот массив?)

   
 
 автор: ChieFSS   (01.02.2008 в 18:43)   письмо автору
 
   для: kasmanaft   (01.02.2008 в 18:39)
 

array($test, 'setHtmlspecialchars') - это замена $test->setHtmlspecialchars, ибо так не работает

   
 
 автор: ChieFSS   (01.02.2008 в 19:05)   письмо автору
 
   для: ChieFSS   (01.02.2008 в 18:43)
 

Или хотя бы объясните как этот массив обработать функцией, которая находится в другом классе? вообще какие способы есть?

   
 
 автор: kasmanaft   (01.02.2008 в 19:23)   письмо автору
 
   для: ChieFSS   (01.02.2008 в 19:05)
 

Хм.. может быть: "testclass::setHtmlspecialchars" ?

где testclass - класс вашего $test. (get_class($test))

   
 
 автор: ChieFSS   (01.02.2008 в 19:31)   письмо автору
 
   для: kasmanaft   (01.02.2008 в 19:23)
 

А причем тут метод вызова функции?
Ошибка то в обработке массива: Warning: htmlspecialchars() expects parameter 1 to be string, array given

   
 
 автор: EXP   (01.02.2008 в 19:44)   письмо автору
 
   для: ChieFSS   (01.02.2008 в 19:31)
 

<?php
class MyClass {
    function 
__construct() {
        print 
"Объект создан\n";
    }

    public function 
hsc(&$str) {
        
$str htmlspecialchars($str);
    }
}

// $obj = new MyClass();

 
$array = array( array('<h1>''</h1>''<hr>'), 
    array(
'<h2>''</h2>''<br>'), 
    array(
'<h3>''</h3>''<>'));

array_walk_recursive($array'MyClass::hsc');

echo 
'<pre>';
print_r($array);
echo 
'</pre>';
?> 

   
 
 автор: kasmanaft   (01.02.2008 в 19:57)   письмо автору
 
   для: ChieFSS   (01.02.2008 в 19:31)
 

Ыы.. Ошибка в том, что вы вместо строки подсовываете массив.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования