我正在尝试创建一个类TestClass
它分为几个文件。我将它分成 3 个文件,其中第一个文件TestClassPart1.php
已经开始上课了class TestClass {
和最后一个文件TestClassPart3.php
有班级的右括号。这是 3 个文件
//TestClassPart1.php
<?php
class TestClass {
public function func1(){
echo "func 1";
}
//TestClassPart2.php
<?php
public function func2(){ echo "func 2"; }
//TestClassPart3.php
<?php
public function func3(){ echo "func 3"; }
}
然后我在名为的实际类文件中重新组合TestClass.php
所以 TestClass.php 只是所有 3 个文件的粘合剂。
<?php
require 'TestClassPart1.php';
require 'TestClassPart2.php';
require 'TestClassPart3.php';
我认为这应该可行,但是当我尝试创建一个实例时TestClass
并调用其中一个函数,我得到parse error, expecting T_FUNCTION' in C:\wamp\www\TestClassPart1.php on line 5
。 5号线是}
of func1()
<?php
require 'TestClass.php';
$nc = new TestClass();
$nc->func1();
这不应该起作用吗?我认为你可以将一个类分散到多个文件中,没有问题。我做错了吗?
当你require
一个文件,PHP 将解析并评估其内容。
你的类不完整,所以当PHP解析时
class TestClass {
public function func1(){
echo "func 1";
}
它无法理解该类,因为缺少结尾 } 。
就那么简单。
并预测你的下一个问题。这
class Foo
{
include 'methods.php'
}
也不行。
来自OOP 4 的 PHP 手册 http://de.php.net/manual/en/keyword.class.php(5楼没找到)
您不能将类定义分解为多个文件。您也不能将类定义分解为多个 PHP 块,除非分解是在方法声明内。以下内容将不起作用:
<?php
class test {
?>
<?php
function test() {
print 'OK';
}
}
?>
但是,以下情况是允许的:
<?php
class test {
function test() {
?>
<?php
print 'OK';
}
}
?>
如果您正在寻找水平重用,要么等待 PHP.next,它将包含 Traits http://wiki.php.net/rfc/horizontalreuse或者看看
- 我可以将代码包含到 PHP 类中吗? https://stackoverflow.com/questions/1957732/can-i-include-code-into-a-php-class/1957830#1957830
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)