我一直在试图找出如何去这样做,但我不太清楚如何。
这里是什么,我试图做一个例子:
class test {
public newTest(){
function bigTest(){
//Big Test Here
}
function smallTest(){
//Small Test Here
}
}
public scoreTest(){
//Scoring code here;
}
}
这里是我有问题的一部分,我怎么叫bigTest()?
试试这个:
class test {
public function newTest(){
$this->bigTest();
$this->smallTest();
}
private function bigTest(){
//Big Test Here
}
private function smallTest(){
//Small Test Here
}
public function scoreTest(){
//Scoring code here;
}
}
$testObject = new test();
$testObject->newTest();
$testObject->scoreTest();
您提供的样品是无效的PHP和有几个问题:
public scoreTest() {
...
}
不正确的函数声明 - 你需要用“功能”关键字来声明功能。
语法而应是:
public function scoreTest() {
...
}
其次,包裹bigTest()和smallTest()公共函数的函数(){}并不能让他们的私人 - 你应该使用专用的关键字在这两个分别:
class test () {
public function newTest(){
$this->bigTest();
$this->smallTest();
}
private function bigTest(){
//Big Test Here
}
private function smallTest(){
//Small Test Here
}
public function scoreTest(){
//Scoring code here;
}
}
此外,还约定,利用类声明(“测试”)类名。
希望帮助。
我认为你正在寻找这样的事情之一。
class test {
private $str = NULL;
public function newTest(){
$this->str .= 'function "newTest" called, ';
return $this;
}
public function bigTest(){
return $this->str . ' function "bigTest" called,';
}
public function smallTest(){
return $this->str . ' function "smallTest" called,';
}
public function scoreTest(){
return $this->str . ' function "scoreTest" called,';
}
}
$test = new test;
echo $test->newTest()->bigTest();
class test {
public newTest(){
$this->bigTest();
$this->smallTest();
}
private function bigTest(){
//Big Test Here
}
private function smallTest(){
//Small Test Here
}
public scoreTest(){
//Scoring code here;
}
}
若要调用从类(声明新)实例化对象的任何方法,你需要“点”来了。 从外面看,你只需要使用由新语句创建的资源。 内部由new创建的任何对象PHP,节省了相同的资源到$此变量。 因此,一个类中,您必须通过$这一点的方法。 在你的类,调用smallTest
从类中,你必须告诉PHP它通过要执行新的语句创建的所有对象,只写:
$this->smallTest();
你需要调用newTest
,使该方法内声明的函数“可见”(见函数中的函数 )。 但是,在将它们的正常功能,并没有方法。
为了有一个“函数内部功能”,如果我知道你要问什么,你需要PHP 5.3,在那里你可以采取新的闭包功能的优势。
所以,你可以有:
public function newTest() {
$bigTest = function() {
//Big Test Here
}
}
class sampleClass
{
public function f1()
{
return "f1 run";
}
public function f2()
{
echo ("f2 run" );
$result = $this->f1();
echo ($result);
}
f2();
}
输出:
F2运行F1运行
您也可以使用self::CONST
代替$this->CONST
如果要调用当前类的静态变量或函数。
例如1
class TestClass{
public function __call($name,$arg){
call_user_func($name,$arg);
}
}
class test {
public function newTest(){
function bigTest(){
echo 'Big Test Here';
}
function smallTest(){
echo 'Small Test Here';
}
$obj=new TestClass;
return $obj;
}
}
$rentry=new test;
$rentry->newTest()->bigTest();
例题
class test {
public function newTest($method_name){
function bigTest(){
echo 'Big Test Here';
}
function smallTest(){
echo 'Small Test Here';
}
if(function_exists( $method_name)){
call_user_func($method_name);
}
else{
echo 'method not exists';
}
}
}
$obj=new test;
$obj->newTest('bigTest')