扫码关注官方订阅号
class a{public function a(){}include('file.php');}我想这样写,可是不支持。
人生最曼妙的风景,竟是内心的淡定与从容!
首先要区分函数和方法的区别,你如果是要引入函数的话,在文件头include就可以了,不过需要判断是否定义函数,否则会抛出函数重定义的错误,如果是引入的方法的话要么用继承要么用trait将其变成成员,否则的话就创建一个对应的类实例就可以了,要注意在创建实例的时候,类已经成功被加载
class a{ public function a(){ include('file.php'); } }
假设你要引入类文件需要调用里面的类方法,现在有两个类文件,file.php和a.php,里面代码分别如下:
file.php
<?php class File { // 方法1 public function function_1() { // 方法体 } // 方法2 Public function function_2() { // 方法体 } }
a.php
<?php class a { // File类对象 private $_fileObj = null; // @param File $fileObj File类对象 public function __construct(File $fileObj) { $this->_fileObj = $fileObj; } }
a类要使用file类的方法,代码如下:
<?php require 'file.php'; class a { // File类对象 private $_fileObj = null; // @param File $fileObj File类对象 public function __construct(File $fileObj) { $this->_fileObj = $fileObj; } }
将file类对象传给a类:
$file = new a(new File());
然后就可以在a类中使用file类方法了。
如果是要在类中使用函数那就更简单了,直接将雷倩引入函数文件即可(即将a文件中require的文件改成函数文件即可),因为函数默认注册的是根命名空间。
如果你打算在类中加载一个文件。可以放到 __construct 中。比如一个文件 a.php
__construct
<?php function fa() { echo "run fa"; }
index.php
<?php class A{ public function __construct() { include "a.php"; fa(); } } $a = new A();
这样在类中就可以加载文件 a.php因为 include 是一条语句, 不能直接放到类中, 放到类的初始化函数 __construct就可以自动执行。
你的想法儿不对,你还是先理解面向对象吧。首先来说函数没必要在对象中被引用,对象就是对象,函数就是函数,之所以是函数说明它可能无法没明确的归纳为所属的对象。方法则是通过继承的方式获得的,不需要include的。比如你定义了一个水果类,那么这个类可以有 获得果汁含量 的方法,但是不应该有榨汁的方法,那应该是榨汁机对象提供的。包括所有方法的 万能对象 是不存在的,这个状态下的对象与没有对象想成相同的结果。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
首先要区分函数和方法的区别,你如果是要引入函数的话,在文件头include就可以了,不过需要判断是否定义函数,否则会抛出函数重定义的错误,如果是引入的方法的话要么用继承要么用trait将其变成成员,否则的话就创建一个对应的类实例就可以了,要注意在创建实例的时候,类已经成功被加载
假设你要引入类文件需要调用里面的类方法,现在有两个类文件,file.php和a.php,里面代码分别如下:
file.php
a.php
a类要使用file类的方法,代码如下:
将file类对象传给a类:
然后就可以在a类中使用file类方法了。
如果是要在类中使用函数那就更简单了,直接将雷倩引入函数文件即可(即将a文件中require的文件改成函数文件即可),因为函数默认注册的是根命名空间。
如果你打算在类中加载一个文件。可以放到
__construct中。比如一个文件
a.phpindex.php这样在类中就可以加载文件
a.php因为 include 是一条语句, 不能直接放到类中, 放到类的初始化函数
__construct就可以自动执行。你的想法儿不对,你还是先理解面向对象吧。
首先来说函数没必要在对象中被引用,对象就是对象,函数就是函数,之所以是函数说明它可能无法没明确的归纳为所属的对象。
方法则是通过继承的方式获得的,不需要include的。
比如你定义了一个水果类,那么这个类可以有 获得果汁含量 的方法,但是不应该有榨汁的方法,那应该是榨汁机对象提供的。
包括所有方法的 万能对象 是不存在的,这个状态下的对象与没有对象想成相同的结果。