也许我没有得到整个特质系统,所以我想我会问StackOverFlow。
我的第一个特质......
<?php
trait MY_Stat
{
var $dex;
var $int;
var $str;
}
?>
我无法让它与我的班级一起工作(在另一个文件中)....
class MY_Mobile
{
use MY_Stat;
public function __construct($params = NULL)
{
var_dump($this);
}
}
我总是碰到这堵墙:
Fatal error: Trait 'MY_Trait' not found in ...\wamp\www\game\application\libraries\MY_Mobile.php
我想在很多课程中都有这个特性,即手机,物品等......我是否应该在同一个文件中定义特征?
在旁注中,如果你正在使用codeigniter,你是如何设法加载的,你是否将你的特征设置为辅助文件,库文件......?
答案 0 :(得分:1)
你可以通过这样做来解决这个问题:
<强>路径:强>
应用/助手/你的性状-class.php
<强>内容:强>
<?php
if (!trait_exists('MY_Stat')) {
trait MY_Stat
{
public $dex;
public $int;
public $str;
}
}
在你的图书馆中,只需手动包含特质类(如我所说)。在!defined('BASEPATH');
行之后。
您的图书馆:
include APPPATH . 'helpers/your-trait-class.php';
class YourLibrary {
use MY_Stat;
并在库方法中使用特征类属性,如下所示:
$this->dex = 0.1;
$this->int = 1;
$this->str = 'Hello';
答案 1 :(得分:0)
另一种适合我的选择..其中model_base在模型文件夹中
@include_once ('model_base.php');
class device_token extends CI_Model {
// PHP 5.4 Traits
use model_base;