Scope LOCAL Pada Fungsi


http://yourserver/cfdocs/htmldocs/Developing/WSc3ff6d0ea77859461172e0811cbec22c24-7dfb.html

Note: Always use the Var keyword or Local scope name on variables that are only
used inside the function in which they are declared

Mari kita lihat contoh berikut:

<cfset variableSatu = "satu" />
<cfset variableDua = "dua" />

<cfdump var="#VARIABLES#" label="VARIABLES - sebelum menjalankan fungsi()" />

<cffunction name="fungsi">

	<cfset variableSatu = "siji" />
	<cfset variableDua = "loro" />

	<cfreturn true />

</cffunction>

<cfset fungsi() />

<cfdump var="#VARIABLES#" label="VARIABLES - setelah menjalankan fungsi()" />
sebelum dan setelah menjalankan fungsi

sebelum dan setelah menjalankan fungsi

Terlihat ketika fungsi() dijalankan, walaupun variableSatu dan variableDua tidak digunakan sebagai argument dari fungsi(), nilainya tetap diubah ketika fungsi() dijalankan.

Bagaimana jika kita menambahkan sebuah variable lagi di dalam fungsi() tersebut?

<cffunction name="fungsiTambahSatuVariable">
	
	<cfset variableSatu = "siji" />
	<cfset variableDua = "loro" />
	<cfset variableTiga = "telu" />
	
	<cfreturn true />
	
</cffunction>

<cfset fungsiTambahSatuVariable() />

<cfdump var="#VARIABLES#" label="VARIABLES - setelah menjalankan fungsiTambahSatuVariable()" />
setelah menjalankan fungsiTambahSatuVariable

setelah menjalankan fungsiTambahSatuVariable

Ternyata ada tambahan variableTiga di dalam scope VARIABLES. Karena berada dalam scope VARIABLES, maka variableTiga bisa dipergunakan diluar dari function.

<cffunction name="fungsiScopeLocal">

	<cfset LOCAL.variableSatu = "one" />
	<cfset LOCAL.variableDua = "two" />
	<cfset LOCAL.variableTiga = "three" />
	
	<cfreturn LOCAL />

</cffunction>

<cfset fungsiScopeLocal() />

<cfdump var="#VARIABLES#" label="VARIABLES - setelah menjalankan fungsiScopeLocal()" />
setelah menjalankan fungsiScopeLocal

setelah menjalankan fungsiScopeLocal

Ketika menjalankan fungsiScopeLocal(), variableSatu,variableDua, dan variableTiga yang berada di scope VARIABLES tidak diubah nilainya.

Selalu menggunakan scope LOCAL dalam pendeklarasian function untuk variable-variable yang memang hanya dipergunakan di dalam function tersebut mengurangi resiko pengubahan nilai variable yang berada di scope lain.

Lalu apa isi dari scope LOCAL?

<cfdump var="#fungsiScopeLocal()#" label="LOCAL"/>
scope local

scope local

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: