Php 为什么我能';不要将一个类划分为几个文件
我正在尝试创建一个类Php 为什么我能';不要将一个类划分为几个文件,php,oop,class,Php,Oop,Class,我正在尝试创建一个类TestClass,它被分成几个文件。我把它分成了3个文件,其中第一个文件TestClassPart1.php是类classtestclass{的开始,最后一个文件TestClassPart3.php是类的结束括号。这是3个文件 //TestClassPart1.php <?php class TestClass { public function func1(){ echo "func 1"; } //TestClassPar
TestClass
,它被分成几个文件。我把它分成了3个文件,其中第一个文件TestClassPart1.php
是类classtestclass{
的开始,最后一个文件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
实例并调用其中一个函数时,我得到了parse error,在第5行上的C:\wamp\www\TestClassPart1.php中应为T_FUNCTION'。第5行是func1()的}
如果必须这样做,可以使用include_once()
将文件直接插入脚本。当需要
文件时,PHP将解析和评估内容
您的类不完整,因此当PHP解析
class TestClass {
public function func1(){
echo "func 1";
}
它无法理解该类,因为缺少结尾}
就这么简单。
并预测你的下一个问题。这个
class Foo
{
include 'methods.php'
}
也不行
从中(在5中找不到)
不能将类定义拆分为多个文件。您也不能将一个类定义拆分为多个PHP块,除非该拆分在方法声明中。以下操作将不起作用:
但是,允许以下情况:
如果您正在寻找或查看
不久前,作为纯粹的学术兴趣,我也有同样的想法。虽然您可以使用PHP生成PHP,然后由服务器对其进行评估,但不可能直接执行您要求的操作
长话短说:
不用麻烦了
短篇故事:
- 它增加了分级系统的不安全性,因为控制文件访问变得更加困难
- 它会降低页面的编译/缓存速度
- 你真的不需要把一个方形的钉子塞进一个圆孔里
相反:使用适当的OOP实践,将功能划分为类并扩展现有类。为什么要这样做?如果类太大,无法在单个文件中进行管理,那么重构或分解为更小的类可能已经成熟。用todo标记类(如果您使用phpdoc或等效工具)并在有时间/机会时返回的“快速解决方案”不是吗?i、 e:让它保持原样,而不是提供解决问题的假象。PHP必须格式良好才能执行。在这种情况下,php将是无效的,因为右括号将丢失。我认为这些只是打印错误的代码行。文件实际上是这样构造的?哎哟我会重新思考我是如何编码的,因为我认为这样做没有用。
class TestClass {
public function func1(){
echo "func 1";
}
class Foo
{
include 'methods.php'
}
<?php
class test {
?>
<?php
function test() {
print 'OK';
}
}
?>
<?php
class test {
function test() {
?>
<?php
print 'OK';
}
}
?>