4

我有一个 CakePHP 模型,其中有一些功能运行良好。现在我正在尝试编写一个新函数,它使用我已经编写的一些函数。似乎应该很容易,但我无法弄清楚语法。我如何调用我已经在我的新函数中编写的这些函数?

例子:

<?php
public function getHostFromURL($url) {
    return parse_url( $http.$url, PHP_URL_HOST );
}
public function getInfoFromURL($url) {
    $host = getHostFromURL($url);
    return $host;
}

结果:

致命错误:在第 151 行的 /var/www/cake/app/Model/Mark.php 中调用未定义函数 getHostFromURL()

我也尝试过类似的东西:

<?php
public function getHostFromURL($url) {
    return parse_url( $http.$url, PHP_URL_HOST );
}
public function getInfoFromURL($url) {
    $host = this->Mark->getHostFromURL($url);
    return $host;
}

但是得到了同样的结果。

显然我的函数比这复杂得多(否则我只会重用它们)但这是一个很好的例子。

4

2 回答 2

5

如果该功能在同一个控制器中,您可以使用

$this->functionName句法。

您在下面有错误的语法:

public function getInfoFromURL($url) {
    $host = this->Mark->getHostFromURL($url);
    return $host;
}

应该:

public function getInfoFromURL($url) {
        $host = $this->getHostFromURL($url);
        return $host;
    }

如果 getFromHostUrl 方法在当前类中。 http://php.net/manual/en/language.oop5.php

于 2012-05-18T22:30:12.803 回答
4

您只需要调用其他函数,例如:

$host = $this->getHostFromURL($url);
于 2012-05-18T22:30:44.690 回答