如何在cfscript中创建和使用类/对象?

时间:2016-09-06 03:34:28

标签: coldfusion

我找不到任何关于如何编写一个非常简单的类或模型并在cfscript中使用它的简单示例。

这是我想要的,在php中: oocaller.php:

<?php
include 'oo-model.php';
$dog = new animal('dog');
echo $dog->says();

OO模型:

<?php    
class animal{
    public $type;

    function __construct($type){
        $this->type =$type;
    }

    function says(){
        if($this->type == 'dog')
            return 'woof!';
        if($this->type == 'cat')
            return 'meow!';         
        return 'I dont know what to say!';
    }   
}

确定这有效......

oocaller.cfm:

   <cfscript>
//include 'oomodel.cfc'; //dont need, autoincluded
//obj = new admin.d.oomodel(); //for path, use dots not slashes...
//obj = CreateObject("component", "oomodel");        
obj = CreateObject("component", "/admin/d/oomodel");//either works        
obj.out();  
writeoutput('<HR>'); 
writedump(obj.other); 
writeoutput('<HR>'); 
writedump(obj); 
</cfscript>

with:oomodel.cfc:

 component  { 
    thevar = 'thevrrrrr';
    this.other = 'otherrrr';
    public function out(){
        writeoutput(variables.thevar & "<BR>");
        writeoutput(thevar          & "<BR>");
        writeoutput(this.other      & "<BR>");
    }
}

1 个答案:

答案 0 :(得分:3)

将以下内容保存到d.cfc

component displayname="d" output="false" { 
    public function out(){
        writeoutput('blahblahblah');
    }
}

将以下内容保存到test.cfm

<cfscript>
obj = new d();    
obj.out();    
</cfscript>

对于this,它是一个包含所有公共方法和属性的范围。通常,您不需要指定私有变量的范围,但如果您想要明确,安全并获得最后一点性能,则应使用variables.theVarVaribales是包含所有私有方法和属性的范围。

要编写正确的构造函数,请使用init()函数。

看起来你刚刚开始使用ColdFusion,我可以建议: