PHP, JScript 和 VBScript 函數和類的語法

1)函數的例子
php: function inc($val)
{ return $val + 1;}

過程也是個函數,隻不過沒有返回值。
jscript, javascript:
function inc(val)
{ return val + 1;}
過程的定義同上。
VBScript:
function inc(val)
inc = val + 1
end function
procedure
sub inc2(byref val)
val = val + 1
end sub
2)類的例子
php:
class parent {
var property;
function parent() { }
function method() { }
}

/* 繼承 */
class child extends parent { var property= new value ;
}

jscript or javascript:
class parent {
property=value
function parent() function method() { } }

不支持繼承(原文是這樣,但好像現在也支持瞭)
vbscript:
不支持類((原文是這樣,但現在也支持瞭)

3)變量的范圍
php:變量在函數或類外定義是允許的是全局變量;也可以在函數和類中定義局部變量。
不像其它的語言,在使用變量時,你必須聲名一個全局變量在函數和類中使用關鍵字global.
$globalvar = 1;
function show_global( ) {
global $globalvar;
print $globalvar;
}
jscript or javascript:
類似PHP, 在函數中不需聲明全局變量.
vbscript:
類似PHP, 在函數和過程中不需聲明全局變量.

4)訪問引用
php:使用關鍵字,在函數的參數中
jscript or javascript
簡單的通過變量訪問,在函數裡引用復雜的類型
vbscript:
使用ByRef 關鍵字在Sub 或函數的參數中.

5)默認參數
php:支持function A(param1=”abc”)
其它的不支持。

6)引用返回(不知如何翻)
php:function getarray123() {
$val = array(1,2,3);
return & $val;
}
然後在代碼中使用

$val = &getarray123();
其它的不支持

7)類
php:支持的較好
其它的:一般

8)錯誤處理
php:使用@ 防止運行錯誤.

$val = @function_can_fail();

@范圍是當前的聲明,最後的錯誤能夠在$php_errormsg檢查出來,如果你設置瞭track_errors=On 在PHP.ini.
javascript or jscript:
使用try and catch.

try {
function_can_fail()
} catch(err) { Response.Write(err)
}
vbscript:
使用On Error Resume Next 忽略運行錯誤
新的版本也支持try 和 catch

另外,還有一篇關於語言的比較,有興趣的也可以翻譯一下。

發佈留言