加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP数组 [精选] PHP 与 Go 的语法,对比有利于你学习

发布时间:2022-11-22 16:30:59 所属栏目:PHP教程 来源:未知
导读: Go也称为GolangPHP数组,它基本上是一种编程语言,可用于快速机器代码编译。它由Google创建。它是一种静态类型的编译语言。它提供了并发机制,可以轻松开发多核和联网的机器级程序。它是快

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;
}

//?Gopackage?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自学中心的支持

让学习成为一种习惯

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!