<?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-ой строке!
Кстати, если говоришь, что ошибка в 7-ой строке, то стоит уточнить, что именно находится на 7-ой строке!
Спустя 15 минут, 47 секунд (3.07.2012 - 15:18) killer8080 написал(а):
Shkiper
Во первых, что за var? PHP 4 уже давно пора похоронить
Во вторых, в декларации класса свойству нельзя присваивать результат действия функции. Для этого есть конструктор.
В третьих, когда в качестве колбека используется метод объекта, нужно в качестве аргумента передавать не имя метода, а массив, где первый элемент сам объект, а второй имя метода. Т.е не "createHtml", а array($this,"createHtml")
Во первых, что за var? PHP 4 уже давно пора похоронить
Во вторых, в декларации класса свойству нельзя присваивать результат действия функции. Для этого есть конструктор.
В третьих, когда в качестве колбека используется метод объекта, нужно в качестве аргумента передавать не имя метода, а массив, где первый элемент сам объект, а второй имя метода. Т.е не "createHtml", а array($this,"createHtml")
Спустя 2 часа, 42 минуты, 48 секунд (3.07.2012 - 18:01) Shkiper написал(а):
killer8080
поменял.
inpost 6 строка это - static $text = preg_replace_callback("#\[file=(.*?)\]#", array($this, "createHtml"), $this->name);
поменял.
<?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
Проблема решена.
Проблема решена.