[Powered by Google Translate] [PHP语法]
[Tommy MacWilliam的] [哈佛大学]
[这是CS50。] [CS50.TV]
>> 在这段视频中，我们将介绍PHP -
语言之一，我们将使用CS50
作为我们过渡到Web开发。
PHP代表PHP超文本处理器，
或PHP超文本处理器超文本处理器，
我会停在那里。
PHP是一种递归的缩写，我认为这是真正真棒。
>> 所以，让我们写'你好世界“在PHP中，
这将是一个有点不同，比“世界你好”在C，我们来了解和热爱。
而不是创建一个文件名为hello.c，
我们将创建的hello.php。
将包含所有我们的PHP代码<？php和？>之间。
如果我们有任何PHP代码，位于
这些分隔符之外，也不会执行。
我们可以有很多这些PHP块
因为我们希望一个单一的PHP文件内。
在PHP中，没有必要为主要功能。
相反，我们的PHP代码将运行在我们的PHP文件中出现的顺序。
C和PHP有一个'printf的输出数据的功能。
但是在PHP中，我们并不需要像standardIO.h＃包括任何头文件。
这是因为在PHP中，我们不会将我们的代码编译。
当我们写C代码，我们的工作流程往往是开放
一个或多个。c或h文件，改变他们，编译它们，
运行生成的二进制文件。
查看更多有关这个过程的编译器的视频。
>> 不像C，PHP是一种解释 - 而不是编译 - 语言。
这意味着，我们的PHP代码写
被称为译员通过一个特殊的程序，运行
这将反过来执行我们的代码。
要运行我们的PHP代码，
我们将发送给它传递给PHP解释器将处理执行，
而不是将它编译为机器代码。
让我们来看看在行动的解释。
我们将打开一个终端，运行PHP命令
其次我们想运行PHP文件的路径。
我们会说，'PHP的hello.php“。
而且我们去。我们的PHP程序的输出。
我们并不需要在所有我们的PHP编译文件。
相反，我们有另一个程序 - PHP解释器 -
执行的源代码，我们写的。
>> PHP可以做的远不止简单的printf。
让我们写一些更复杂的PHP程序。
的语法结构 - 喜欢的话，否则，同时，开关 -
在PHP和C是相同的
就像C，这些结构用括号来划分自己的身体，
就像在C语言中，我们写的每一行
必须以分号结束;
然而，变量的处理方式有点不同，在PHP。
首先，PHP中的所有变量必须开始与美元符号。
这似乎有点怪异的在第一，但你会习惯它。
其次，PHP是一种松散类型的语言
这意味着你不必明确列出
当您创建一个变量的类型。
凡在C，你需要说的诠释x = 5;
或为char y ='A';
在PHP中，我们可以简单地说$ X = 5;
$ Y ='A';。
这同样适用于函数。
与其说整数的函数f（）{我们的函数体}，
在PHP中，我们要去说函数f（）{我们的函数体}。
我们并不需要明确指定返回类型的函数f。
在PHP中的功能还没有返回相同的类型
每一次，他们都会被执行。
例如，我们可以编写一个函数，返回false一个错误
和另一种类型，如果它成功。
>> 这也可以帮助我们写更多的通用功能。
例如，我们可以写一个add函数
可以返回一个整数，如果2个整数
或浮点数，如果2辆彩车。
在C中，做到这一点，我们就需要写2个独立的功能。
而在C中我们使用指针为加薪和字符串，
我们将无法在PHP中使用指针。
相反，数组和字符串是内置在PHP中的类型。
他们建立到的语言。
要创建一个数组在PHP中，我们可以说，
$ =阵列（1，2，3）;
或更简单地$ = [1，2，3]。
我们可以到这个数组中的索引使用相同的语法，我们已经习惯了从C
为了得到第一个元素，我们会说，$ [0];
PHP也有关联数组的内置支持。
关联数组就像我们已经看到了哈希表的数据结构 -
他们一键映射到一个值。
>> 让我们来看看一个例子。
我们可以说，美元的员工= [“指导员”=>“大卫”，“TF”=>“汤米”];
在这里，我有一个关联数组，带2把钥匙 - 教师和TF。
双箭头，等于或大于，
是用来分隔一个键和其相应的值。
因此，人员[“TF”]的值是字符串“汤米”。
一个关联数组的值 -
就像任何其他的阵列 - 可以是任何类型的。
例如，我们可以说，人员= [“导师”=>“大卫”，“TFS”=> [“汤米”，“抢”];
载入'TFS'的值是一个数组。
这意味着，一个关联数组内的值可以是不同的类型。
>> PHP数组还没有固定的长度，
因此我们可以添加或删除一个数组中的元素。
比方说，我们有一个简单的数组，如$ = [1，2，3]。
要添加一个新元素到这个数组，
我们可以说，一个[] = 4;
现在，我们的阵列由四个要素 - [1，2，3，4]。
回想一下，如果我们想在C做这样的事情，
我们不得不分配一个全新的阵列，
我们的第一个数组的内容复制进去，
然后设置新的数组的最后一个元素到我们的新值。
这是更容易在PHP。
如果我们的数组是一个关联数组，
创建一个元素，我们可以简单地定义一个新的关键
如果它不存在。
如果我们有我们前面的数组 - 员工 -
我们可以说员工[“总”] = 3;
现在我们有一个新的关键的价值3。
>> 要获得在一个数组中的元素数目，
我们可以使用“计数”功能。
如果我们说，数（美元），将有一个价值4。
在PHP中，我们可以创建使用双或单引号的字符串，
所以这两个变量都是字符串。
$ S1 =“字符串”$ S2 ='另一个字符串';
这两者之间的区别是什么？
嗯，这是很常见的，要包括
一个变量里面的字符串值。
做到这一点的方法之一是使用PHP点操作符，
连接字符串。
我们可以做这样的事情 -
$ N = 5; $ S = n是'$ N;。
在这里，我们的变量n是一个整数。
但是，当我们将它连接字符串，
PHP会自动将其转换为一个字符串我们。
或者，我们可以简单地用双引号把变量转换成字符串本身。
我们可以说，$ S = n是$ N“;
现在的价值将是$ s的n是5'。
如果我们使用单引号代替，在$ s ='N $ N';
s的值将是'N $ N';
n的值不会被取代的，如果我们使用单引号，
但如果我们将使用双引号。
如果我们要使用双引号来包含在一个字符串数组的值，
我们需要包括数组，像这样的大括号 -
$ =“{$人员['总']}”;
>> 现在让我们来看看在C中的一个小片段，并把它翻译到PHP。
在这里，我们创建了一个功能，打印出字母的字符串，
每行一个字符。
让我们做同样的事情在PHP。
首先，我们需要我们的PHP的定界符。
当我们创建我们的功能，
我们并不需要指定其返回类型或参数类型。
我们的s变量也必须开始用一个美元符号。
PHP的strlen函数为我们提供了一个字符串的长度，
就像C的strlen的为我们提供了一个字符串的长度。
虽然引擎盖下，这些功能实际上是一个有点不同
因为一个字符串在PHP是一个内置的类型。
我们'for'循环的语法是一样的。
>> 在PHP中，我们还可以使用数组表示法访问字符串中字符。
现在，我们可以使用打印功能打印出每个字母的字符串。
PHP的打印功能，我们不需要担心占位符 -
如％d或％C - 当我们要打印出一个变量，它不是一个字符串。
相反，我们可以简单地通过任何类型的变量打印功能，
，它会被转换为字符串，并显示出来。
这就是它！现在让我们来运行我们的文件'的PHP print.php“。
还有的输出，我们看到我们的C程序。
>> PHP也支持一个结构叫'的foreach循环。
就像是一个'for'循环'的foreach循环，
但它加入了一点语法糖使事情变得更加可读。
在这里，我们创建了一个新的阵列称为'阵'。
现在我们可以说，即$ number的foreach（$阵列），
我们就可以打印出号。
当我们运行这个文件 - ，PHP foreach.php我们可以看到每个号码在自己的行。
>> 当我们写C代码，这是经常组织我们的代码到单独的文件。
在PHP中，我们可以做同样的事情。
比方说，我们有几个函数一个名为math.php中。
如果我想在另一个PHP文件，如Calculator.php中使用这些功能，
我可以使用PHP的require_once（）在函数。
Require_once就像＃包括。
当给定一个文件的路径，这将基本上是复制和粘贴的内容
该文件到当前文件。
Require_once确保每个文件包含到当前文件中只有一次，
可以是有益的，如果你有一个大集合的PHP文件，要求对方。
让我们来看看一个例子。
在这里，我们有一个功能，我想在另一个文件中使用的集合。
让我们来看看我们如何能够使用它们。
在第3行，我们要求math.php。
“__DIR__”是一种特殊的常数，表示当前目录
，因为math.php Calculator.php中位于相同的目录中。
我们需要math.php之后，我们可以使用功能
如果我们定义它们Calculator.php中。
让我们运行，这'的PHP Calculator.php中“。太好了！
>> 这是它为我们介绍了PHP的语法。
要了解更多信息，请PHP.net。
PHP有很多内置功能，幸运的是它的文档是真正伟大的。
我的名字是汤米，这是CS50。
[CS50.TV]
>> ...支架，我的房间。该死的！在代码中，我用大词，这是最后的视频。