1

有没有办法让php制作这段代码:

myclass.randomthingwrittenhere

作为

myclass.nexttodotoperator(randomthingwrittenhere)?

我想将自己的数据库框架编写到数据库中,我想知道它是否可以以某种方式工作。

4

2 回答 2

2

访问对象上的成员?

我真的不确定你在你的例子中在做什么。当您访问对象的属性或调用方法时,您使用->语法,这与 JavaScript 不同,它可以使用..

您可以将一些魔术方法添加到您的类中来处理此问题:

class MyClass {
    function __get ( $property ) {
        $this->something( $property );
    }
    function __call ( $method, $arguments ) {
        $this->something( $method, $arguments );
    }
}

在此代码中,该类的任何实例都可以让您处理对实例本身未找到的成员的请求。

演示:http ://codepad.org/3qB8gXfv

字符串操作?

话虽这么说,也许您根本不是在问类,而是在问字符串操作。如果我正确理解您的问题,请提供您的输入字符串:

$string = "myclass.randomthingwrittenhere";

然后将这两部分分成你的类和你的方法:

list($class, $method) = explode(".", $string);

然后吐出新字符串,插入变量:

echo "$class.foobar($method)";

演示:http ://codepad.org/vggOIA9U

于 2012-11-20T20:08:37.823 回答
1

你想看看php中的“魔术方法”:http: //php.net/manual/en/language.oop5.magic.php

在您的情况下,您可以编写这样的函数...

function __get($name) {
   return this->nexttodooperator($name); 
}
于 2012-11-20T20:11:26.300 回答