2010-12-15 7 views
1

PHPでできます。 $ var =(int)$ _POST ['var'];ColdFusionはタイプヒントをサポートしていますか?

明示的にColdFusion変数を整数または文字列に設定する方法はありますか?

+1

[型ヒント]はないこと(http://php.net/manual/en/language.oop5.typehinting.php)。それは[型キャスト](http://php.net/manual/en/language.types.type-juggling.php)です(少し下にスクロールして、アンカーはありません)。 – delnan

答えて

7

変数はCFではtypelessです。けれどもあなたは数値または文字列のいずれかとし、変数を評価する場合、あなたができる:

#Val(<variable>)# 

、あなたがすることはできませんデータのために起こるしたい内容に応じて文字列

#ToString(<variable>)# 
+0

ありがとう、それはかなりそれに答えました。 – Darren

4

のために変換された、おそらくあなたはcfparamが欲しいですか?

<cfparam name="form.v" type="numeric"/> 

form.vが存在しないか数字でない場合、例外が発生します。

ます。また、値が数値であるかどうかをテストすることができます(または他のタイプ):

<cfif isNumeric(form.v)> 

とすることができます「変換」の数値文字列:

また
<cfset v = val(form.v) /> 
1

へ他の回答には良い情報がありますが、isvalid()を使用して、タイプのない値がさまざまな条件の束と一致するかどうかを確認することは重要です:

isvalid('integer',x); 
isvalid('float',x); 
isvalid('string',x); 

...など。以下のようないくつかのより高いレベルのものもあります:

あなたが「真」型に型なしの値を強制しなければならない時があります
isvalid('email',x); 
isvalid('telephone',x); 

- 例えば、あなたはJavaメソッドに引数を渡したいとき複数の署名が付いています。あなたがそうのように、javacast()を使用したい:

x = "01"; 
myJavaFunc.doSomething(x); // ambiguous -- could be a string or number 
myJavaFunc.doSomething(javacast('int', x)); // does something 
myJavaFunc.doSomething(javacast('string', x)); // does something else