|
|
|
| выдает ошибку Fatal error: Using $this when not in object context in...
class MyClass
{
var $param;
var $ar;
function obdd($ar)
{
echo $this->param;
function filter($var) {return ($var['catalog']==$this->param);};
$ret=array_filter($ar, "filter");
return $ret;
}
};
$cart = new MyClass;
$cart->param=5;
$list=$cart->obdd($pages);
|
помогите пожалуйста разобраться | |
|
|
|
|
|
|
|
для: neokortex
(28.09.2009 в 18:16)
| | А что находится в $pages? | |
|
|
|
|
|
|
|
для: neokortex
(28.09.2009 в 18:16)
| | А вам принципиально, чтобы у каждого объекта был свое значение param? Или можно бойтись статической переменной (тут неудобство - статические переменные общие - меняете в одном объекте - она менятеся сразу во всех объектах данного класса).
<?php
class MyClass
{
public static $param;
var $ar;
function obdd($ar)
{
echo $this->param;
function filter($var){return (MyClass::$param == $var['catalog']);}
$ret=array_filter($ar, "filter");
return $ret;
}
};
$cart = new MyClass;
MyClass::$param = 5;
$list=$cart->obdd($pages);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(28.09.2009 в 18:29)
| | $pages - массив
в том то и дело что $param - динмический :(
cheops спасибо вам большое и за форум и за книгу. за все :) | |
|
|
|
|
|
|
|
для: neokortex
(28.09.2009 в 19:04)
| | Может просто отказаться от array_filter() и реализовать его через foreach() как-то так
<?php
class MyClass
{
var $param;
var $ar;
function obdd($ar)
{
$ret = array();
foreach($ar as $var)
{
if($this->param == $var['catalog']) $ret[]['catalog'] = $var['catalog'];
}
return $ret;
}
};
$cart = new MyClass;
$cart->param = 5;
$list=$cart->obdd($pages);
?>
|
PS Спасибо за добрый отзыв :) | |
|
|
|
|
|
|
|
для: cheops
(28.09.2009 в 19:18)
| | да. будем пробовать | |
|
|
|