【发布时间】:2012-12-31 01:18:40
【问题描述】:
我有一个基于一些东西生成数据的类。我想从外部格式化该数据。所以我试图将一个函数传递给类,以便它格式化该数据。我看过很多例子,但似乎这是独一无二的。
谁能给出如何做到这一点的想法?下面的代码会报错。
<?php
class someClass {
var $outsideFunc; // placeholder for function to be defined from outside
var $somevar='Me'; // generated text
function echoarg($abc){
$outsideFunc=$this->outsideFunc; // bring the outside function in
call_user_func($outsideFunc,$abc); // execute outside function on text
echo $abc;
}
}
function outsidefunc($param){ // define custom function
$param='I am '.$param;
}
$someClass=new someClass();
$someClass -> outsideFunc = 'outsideFunc'; // send custom function into Class
$someClass -> echoarg($someClass->somevar);
【问题讨论】:
-
从结构上讲,您最好将整个对象传递给您的方法。然后该方法可以调用它需要的对象方法来完成它需要的东西。它被称为装饰器模式,在这里很好地介绍了:stackoverflow.com/questions/3235382/…