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 に答える