[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Неизвестная ошибка функции preg_replace_callback
Shkiper
Помогите найти ошибку.
<?php

class
cl {

var $name = "[file=1]";

var $text = preg_replace_callback("\[file=(.*?)\]", "createHtml", $this->name);


function createHtml ($match)
{
return $match[1];
}



function rr () {

return $this->text;

}


}



$cl = new cl;
echo $cl->rr();

Код ошибки: Parse error: syntax error, unexpected '(', expecting ',' or ';' in Z:\home\localhost\www\jh.php on line 7



Спустя 7 минут, 17 секунд (3.07.2012 - 14:49) inpost написал(а):
1. Где стили? Ну сколько раз уже по этому поводу ругать? Сколько раз тебя тыкать в одно и то же... пока не будет нормально оформлены стили - лично я помогать не буду...

Спустя 3 минуты, 11 секунд (3.07.2012 - 14:52) Shkiper написал(а):
<?php

class
cl {

var $name = "[file=1]";
var $text = preg_replace_callback("\[file=(.*?)\]", "createHtml", $this->name);


function createHtml ($match)
{
return $match[1];
}


function rr ()
{
return $this->text;
}


}



$cl = new cl;
echo $cl->rr();

Спустя 10 минут, 32 секунды (3.07.2012 - 15:03) inpost написал(а):
Патерн в регулярном выражении должен в начале и в конце обрамляться одинаковым символом: #lala# , к примеру. В конце указывается отдельно лишь модификаторы. У тебя в патерне они не обрамляются, в виду чего и ошибка.
Кстати, если говоришь, что ошибка в 7-ой строке, то стоит уточнить, что именно находится на 7-ой строке!

Спустя 15 минут, 47 секунд (3.07.2012 - 15:18) killer8080 написал(а):
Shkiper
Во первых, что за var? PHP 4 уже давно пора похоронить cool.gif
Во вторых, в декларации класса свойству нельзя присваивать результат действия функции. Для этого есть конструктор.
В третьих, когда в качестве колбека используется метод объекта, нужно в качестве аргумента передавать не имя метода, а массив, где первый элемент сам объект, а второй имя метода. Т.е не "createHtml", а array($this,"createHtml")

Спустя 2 часа, 42 минуты, 48 секунд (3.07.2012 - 18:01) Shkiper написал(а):
killer8080
поменял.
<?php

class
cl {

static $name = "[file=1]";
static $text = preg_replace_callback("#\[file=(.*?)\]#", array($this, "createHtml"), $this->name);


function createHtml ($match)
{
return $match[1];
}


function rr ()
{
return $this->text;
}


}



$cl = new cl;
echo $cl->rr();


inpost 6 строка это - static $text = preg_replace_callback("#\[file=(.*?)\]#", array($this, "createHtml"), $this->name);

Спустя 17 минут, 30 секунд (3.07.2012 - 18:19) Shkiper написал(а):
<?php

class
cl {

static $name = "[file=1]";

function createHtml ($match)
{
return "<pre>" . print_r($match, 1);
}


function rr ()
{
return preg_replace_callback("#\[file=(.*?)\]#", array($this, "createHtml"), $this->name);
}


}



$cl = new cl;
echo $cl->rr();

Спустя 1 час, 54 минуты, 20 секунд (3.07.2012 - 20:13) killer8080 написал(а):
Shkiper
тогда уж как то так
class cl {

public $name = "[file=1]";

public function createHtml($match){
return "<pre>" . print_r($match, 1) . "<.pre>";
}


public function rr(){
return preg_replace_callback("#\[file=(.*?)\]#", array($this, "createHtml"), $this->name);
}

}



$cl = new cl;
echo $cl->rr();

Спустя 1 минута, 36 секунд (3.07.2012 - 20:15) inpost написал(а):
killer8080
Проблема решена. smile.gif
Быстрый ответ:

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