0

我正在构建一个类,它的一些方法的主体在其他 php 文件中定义。我必须这样做,因为尽管大多数函数都很小、很健全并且是手工编写的,但有几个函数需要由我制作的另一个脚本自动生成。问题是虽然方法被调用,但这些方法中的返回语句似乎没有执行。一般结构是这样的:

MyClass.php:

<?php

class MyClass
{
    public function foo()
    {
        include "myclass-foo-body.php";
    }
}

?>

myclass-foo-body.php:

<?php

echo "foo()"; // This executes and outputs as normal.
return 42; // This does not appear to actually execute or return anything.

?>

测试.php:

<?php

include_once "MyClass.php";
$bar = new MyClass();
$foo = $bar->foo();
var_dump($foo); // Ends up being NULL instead of 42.

?>

那么,我在这里做错了什么?函数/方法体实际上不应该包含在另一个 php 文件中吗?我似乎已经遵循了php 的 include文档,但我似乎缺少重要信息。(我找不到关于这个主题的任何现有问题,所以希望这不是一个骗局!)

谢谢!

4

2 回答 2

1

你的正文文件的返回值将是你的 include 调用的返回值,所以你应该像下面那样做。

    public function foo()
    {
       return  include "myclass-foo-body.php";
    }
于 2013-02-08T15:24:56.960 回答
0

你的方法foo没有返回任何东西。

被包含文件中的Areturn终止被包含文件的处理。

PHP 手册

可以在包含的文件中执行 return 语句,以终止该文件中的处理并返回到调用它的脚本。

于 2013-02-08T15:23:21.980 回答