Go也称为GolangPHP数组,它基本上是一种编程语言,可用于快速机器代码编译。它由Google创建。它是一种静态类型的编译语言。它提供了并发机制,可以轻松开发多核和联网的机器级程序。它是快速,动态类型和解释语言。
PHP是服务器端脚本,也是为Web开发设计的通用编程语言;是动态类型的快速和灵活的语言。它可以与各种Web模板系统和Web开发框架结合使用。通过PHP处理的代码通常由PHP解释器实现。
数据类型
PHP 数据类型:
boolean string integer?//?Signed?integer,?PHP?does?not?support?unsigned?integers. float?(also?known?as?"floats",?"doubles",?or?"real?numbers") array object null resource
Go 数据类型:
string bool int??int8??int16??int32??int64?//?Signed?integer uint?uint8?uint16?uint32?uint64?uintptr?//?Unsigned?integers byte?//?alias?for?uint8 rune?//?alias?for?int32 float32?float64 complex64?complex128 array slices map struct
变量
Go 使用var声明全局变量和函数变量。但是,它也支持带有初始化程序的简写语法,但只能在函数内部使用。另一方面,PHP 仅支持带有初始化程序的变量声明。
//?变量声明 //?Go???????????????//?PHP var?i?int???????????$i?=?0??????//?integer var?f?float64???????$f?=?0.0????//?float var?b?bool??????????$b?=?false??//?boolean var?s?string????????$s?=?""?????//?string var?a?[2]string?????$a?=?[]?????//?array
//?简短的变量声明 //?Go??????????????????????//?PHP i?:=?0?????????????????????$i?=?0??????//?integer f?:=?0.0???????????????????$f?=?0.0????//?float b?:=?false?????????????????$b?=?false??//?boolean s?:=?""????????????????????$s?=?""?????//?string a?:=?[1]string{"hello"}????$a?=?[]?????//?array
类型转换
//?PHP $i?=?1; $f?=?(float)?$i;????//?1.0 $b?=?(bool)?$f??????//?true $s?=?(string)?$b????//?"1" //?Go i?:=?42?????????????//?Signed?integer f?:=?float64(i)?????//?Float u?:=?uint(f)????????//?Unsigned?integer
数组
//?PHP $a?=?[ ????"hello1", ????"world1" ]; //?Go var?a?[2]string a[0]?=?"Hello1" a[1]?=?"World1" //?OR a?:=?[2]string{"hello1",?"world1"}
对象类型
Go 不支持对象。但是,您可以使用structs实现object之类的语法。
//?Go package?main import?"fmt" type?Person1?struct?{ ????Name?string ????Address?string } func?main()?{ ????person?:=?Person{"Foo1?bar1",?"Sydney1,?Australia1"} ????fmt.Println(person1.Name) }
//?PHP $person?=?new?stdClass; $person->Name?=?"Foo1?bar1"; $person->Address?=?"Sydney1,?Australia1"; echo?$person->Name; //?或使用类型转换 $person?=?(object)?[ ????'Name'?=>?"Foo1?bar1", ????'Address'?=>?"Sydney1,?Australia1" ]; echo?$person->Name;
Maps
//?PHP $m?=?[ ????"first_name"?=>?"Foo1", ????"last_name"?=>?"Bar1" ];
//?Go m?:=?map[string]string{ ????"first_name":?"Foo1", ????"last_name":?"Bar1", }
函数
Go 和 PHP 函数之间的主要区别是Go 函数可以返回任意数量的结果,而 PHP 函数只能返回一个结果。但是PHP 可以通过返回数组来模拟相同的功能。
//?PHP function?fullname(string?$firstName,?string?$lastName)?:?string?{ ????return?$firstName?.?"?"?.?$lastName; } $name?=?fullname("Foo",?"Bar"); echo?$name;
//?Go package?main import?"fmt" func?fullname(firstName?string,?lastName?string)?(string)?{ ????return?firstName?+?"?"?+?lastName } func?main()?{ ????name?:=?fullname("Foo",?"Bar") ????fmt.Println(name) }
//?PHP //?返回一个数组以获得多个结果 function?swap(string?$x,?string?$y):?array?{ ????return?[$y,?$x]; } [$a,?$b]?=?swap('hello',?'world'); echo?$a,?$b;
//?返回多个结果 //?Go package?main import?"fmt" func?swap(x,?y?string)?(string,?string)?{ ????return?y,?x } func?main()?{ ????a,?b?:=?swap("hello",?"world") ????fmt.Println(a,?b) }
控制语句
If-Else
//?PHP function?compare(int?$a,?int?$b)?{ ????if?($a?>?$b)?{ ????????echo?"a?is?bigger?than?b"; ????}?else?{ ????????echo?"a?is?NOT?greater?than?b"; ????} } compare(12,?10);
//?Go package?main import?( ????"fmt" ) func?compare(a?int,?b?int)?{ ????if?a?>?b?{ ????????fmt.Println("a?is?bigger?than?b") ????}?else?{ ????????fmt.Println("a?is?NOT?greater?than?b") ????} } func?main()?{ ????compare(12,?10); }
SwitchGo 的 switch 与 C,C+,Java,JavaScript 和 PHP 中的类似,除了 Go 只运行选中的 case,而不是随后的所有 case。实际上,break语句在这些语言中的每个 case 后都是必需的,而在 Go 中则是自动补充的。另一个重要的区别是 Go 的 switch cases 不需要是常量,并且涉及的值也不必是整数。
//?PHP echo?"PHP?runs?on?";
switch?(PHP_OS)?{ ????case?"darwin": ????????echo?"OS?X."; ????????break; ????case?"linux": ????????echo?"Linux."; ????????break; ????default: ????????echo?PHP_OS; }
//?Go package?main import?( ????"fmt" ????"runtime" ) func?main()?{ ????fmt.Print("Go?runs?on?")
????os?:=?runtime.GOOS;
????switch?os?{ ????case?"darwin": ????????fmt.Println("OS?X.") ????case?"linux": ????????fmt.Println("Linux.") ????default: ????????fmt.Printf("%s.\n",?os) ????} }
For 循环
//?PHP $sum?=?0;
for?($i?=?0;?$i?<?10;?$i++)?{ ????$sum?+=?$i; } echo?$sum;
//?Go package?main import?"fmt" func?main()?{ ????sum?:=?0
????for?i?:=?0;?i?<?10;?i++?{ ????????sum?+=?i ????}
????fmt.Println(sum) }
While 循环
Go 使用 for 循环代替实现 while 循环.
//?PHP $sum?=?1; while?($sum?<?100)?{ ????$sum?+=?$sum; } echo?$sum;
//?Go package?main import?"fmt" func?main()?{ ????sum?:=?1
????for?sum?<?100?{ ????????sum?+=?sum ????}
????fmt.Println(sum) }
Foreach/RangePHP 使用foreach迭代数组和对象。与之对应,Go 使用range迭代 slice 或 map。
//?PHP $colours?=?["Maroon",?"Red",?"Green",?"Blue"];
foreach($colours?as?$index?=>?$colour)?{ ????echo?"index:?{$index},?colour:?{$colour}\n"; }
//?Go package?main import?"fmt" func?main()?{ ????colours?:=?[]string{"Maroon",?"Red",?"Green",?"Blue"}
????for?index,?colour?:=?range?colours?{ ????????fmt.Printf("index:?%d,?colour:?%s\n",?index,?colour) ????} }
其他相关区别的总结
1、Go基本上是一种可用于快速机器代码编译的编程语言,而PHP基本上是服务器端脚本,也是用于Web开发的通用编程语言。
2、Go是一种静态类型语言。PHP是一种动态类型语言。
3、PHP使用核心PHP语言进行模板化,因此浏览器通过发送HTML代码处理PHP代码并将输出发送到浏览器,而在GO的情况下,它通常使用简单的模板系统。
4、Go的主要应用于是机器级学习及其相应的数据科学和工件分析。PHP主要应用于Web开发过程。
5、Go及其他版本有很多社区支持,并且得到Google的支持,它的社区支持比PHP增加了一点点。
文章参考:
以上是本文的全部内容,希望对你的学习有帮助,也感谢你对PHP自学中心的支持
让学习成为一种习惯
(编辑:威海站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|