0

I want just to declare functions without the implementations. The implementations have to be in another file.

Is this possible and if so, is there some tricky in that? Is it common practice to do so? I'm curious because I'm coming from a C++.

Example:

----------------- declarations.php -----------

<?php
 function first($name, $age);
 function second($country);
?>

----------------- implementations.php -----------

<?php 
include (declarations.php);

function first($name, $age)
{
 // here is the implementation
}

function second($country)
{
 // here is the other implementation
}
?>
4

4 回答 4

5

我认为您想要的是一个接口,尽管它必须在一个类中实现。

http://php.net/manual/en/language.oop5.interfaces.php

由于 PHP 是一种脚本语言,您仍然必须使用include. 没有像 C++ 这样的链接阶段。

于 2013-04-18T12:25:03.940 回答
1

不,PHP 没有与头文件等效的头文件,您可以在其中声明一个全局函数并在某处实现它。

正如丹尼尔所写,有一些类似的东西,即接口,但它们的目的是描述所有实现类必须遵守的接口,而不是指示“函数占位符”。

此外,PHP 5.4 版不支持函数或方法重载,因此不能多次声明相同的函数或方法,即使使用不同的参数也是如此。

于 2013-04-18T12:28:17.900 回答
1

你能用面向对象编程来解决这个问题吗?具有几个抽象方法的抽象类会做得很好。

// File: MyClass.php
abstract class AbstractClass {

    abstract public function first($arg);
    abstract public function second($arg, $arg2);

}

// File: core.php
require_once('MyClass.php');

class MyClass extends AbstractClass {

    public function first($arg) {
        // implementation goes here
    }

    public function second($arg, $arg2) {
        // implementation goes here
    }
}
于 2013-04-18T12:30:20.947 回答
1

PHP和C++在这一点上有所不同。无需声明和单独实现您的函数。您必须同时执行此操作(在同一文件中声明和实现),然后在脚本中包含(include () 或 require_once ())函数。

于 2013-04-18T12:31:27.630 回答