The PHP Language

栏目: PHP · 发布时间: 5年前

PHP脚本通常与文件扩展名.php一起保存,以表示其类型。每当您的Web服务器被要求发送以.php结尾的文件时,它首先将其短语发送到 php 解释器,该解释器在将生成的文件返回给最终用户之前执行脚本中的任何PHP代码。 php代码的基本单元称为语句,以分号结尾,表示它是一个完整的语句。一行代码通常只包含一个语句,但您可以根据需要在一行中包含尽可能多的语句。

喜欢php的人会想指出打印在技术上不是一个功能,从技术上来说它们是正确的。这就是为什么打印在传递给数据时不需要数据括号的原因。您可以将括号与这些结构一起使用,这样做是无害的。虽然在表面上,印刷和回声看起来是相同的,但它们不是。 print构造比echo更有可能是一个函数,因为它返回一个值(1)。但是,echo更有用,因为您可以传递几个参数。

php中的变量,这些是存储数据的东西,它们以$开头,后跟字母或下划线,然后是字母,数字和下划线字符的任意组合。在PHP变量中不要以数字开头。变量也区分大小写。所以$ N和$ n有两种不同的含义。

您可以通过编写变量名称后跟“=”符号然后再使用其值来分配变量,并使用分号(;)结束该语句。

在那里我们将$ a变量设置为字符串Donald,并且php允许我们在您的名字后打印出该变量。因此,第一个print语句的输出是谁是唐纳德,因为只要它自己找到它,或者在双引号字符串中,php就会用$ a替换它的值。

之后我们将$ name_2设置为$ a,这有效地将$ a的值复制到$ name_2中。 $ name_ 2现在是唐纳德。我们还将$ age变量设置为数字77.我们的第二个print语句一次输出两个变量,同样,php将在字符串中替换它们。

但是,最后一份印刷声明不会用唐纳德取代$ a。相反,它会打印出来。

原因是php不会在单引号字符串中执行变量替换,甚至不会替换大多数转义字符。在双引号字符串中,PHP将用单引号字符串替换$ a及其值。 PHP会考虑$ a意味着你实际上希望它输出下一个$ a就像那样。

当你想在字符串中追加变量时。 PHP可能会认为字符是变量的一部分。例如:

虽然期望的输出是这些芒果尚未成熟,但实际输出有点不同,因为我们在变量名称的末尾添加了“s”,我们已将其从尝试读取$ fruit更改为尝试读取$果实。变量$ fruits不存在,因此PHP会将空格留空并可能生成错误。有两种方法可以解决它:

大括号{和}在技术上用于在字符串中使用时发出变量信号,但在上面的示例中,它们用于告诉PHP变量的结束位置。您不需要使用大括号,其中附加到变量的字符会使变量名称非法,如下所示:

这将有效,因为您不允许使用撇号作为变量名称的一部分。

打开PHP代码岛有很多方法,欢迎您选择自己喜欢的方式。推荐的方式是使用离开php模式,但你也可以使用短标签版本.

简短版本有一个很大的优点和两大缺点,您可以通过使用特殊的短标签hack从脚本输出信息,

短标签版本更紧凑,阅读起来有点难。然而,短版本的第一个缺点是它与XML有冲突,而XML也使用

PHP允许您根据条件的结果选择要采取的操作。这种情况可以是您选择的任何条件,您可以结合条件采取更复杂的行动。这是一个例子:

在最基本的层面上,php评估if语句是否从左到右,这意味着它首先检查$ age是否大于或等于18,然后检查$ age是否小于50. double ampersand,&&表示两个语句必须如果打印出“你生命中最重要的代码”,那么就应该执行,如果任何一个陈述由于某种原因而不是真的,那么“你不是生命的巅峰”就会打印出来代替。当运算符优先级很重要时,检查条件的顺序会有所不同。

除了&&之外,还有||这意味着OR。在这种情况下,如果检查的任何条件为真,则整个语句被评估为true。

如果语句为真,则要执行的代码在其自己的块中,否则要执行的代码在else块中。这会阻止php尝试执行true和false操作。

需要注意的一个关键点是php实践“if语句短路”这是php将尽可能少的条件工作,所以它基本上停止检查条件语句,只要它确定它可以停止。

For example

如果将$ age评估为8,则第一次检查($ age> 10)将失败,因此php将不会对20进行检查。这意味着您可以检查变量是否已设置以及是否设置为某个值 - 如果如果没有设置变量,php将短路if语句而不检查其值。这很好,因为如果你检查一个unset变量的值,php会标记一个错误。

if语句的一个有用的补充是elseif语句,它允许您以更智能的方式将条件链接在一起。

您可以使用if语句实现相同的效果,但使用elseif更容易阅读。该系统的缺点是$ age变量需要多次检查。

当你有一系列条件在上面的例子中都是相同的变量时,你的if ... elseif块会变得难以处理。 php有一个解决方案,这是一个switch case语句。在switch case块中,指定要检查的内容,然后列出要处理的可能值。使用switch / case语句,我们可以像这样重写前面的脚本:

Switch / case语句经常用于检查各种数据,并且它们占用的空间比等同的if语句少得多。

php switch / case语句代码中有两个重要的注意事项。首先,默认情况下没有单词大小写,这就是语言的工作原理。其次,我们上面的每个案例行动都以“休息”结束。这是因为一旦php在其案例列表中找到匹配项,它将执行该匹配项的操作以及其下所有匹配项的操作。

如果php在其他一种情况下没有找到匹配项,或者如果它之前的情况被执行并且没有以break语句结束,则执行默认情况。

关键字break意味着“退出switch / case语句”,并具有阻止php在匹配后执行所有后续情况的操作的效果。

PHP有以下循环关键字,foreach,while,for和do ... .while。

foreach循环用于处理数组,并通过迭代数组中的每个元素来工作。您也可以将它用于对象,在这种情况下,它会迭代该对象的每个公共变量。

foreach最基本的用法只提取每个数组元素的值,如下所示:

这里数组$ array循环遍历,其值被提取到$ val。在这种情况下,数组键被完全忽略,这通常在自动生成时最有意义。

您也可以使用foreach来提取密钥,如下所示:

使用对象时,语法是相同的:

PHP,while循环仅用于执行代码块,只要给定条件为真。例如,此代码将从1循环到10,随时打印出值。

请注意,同样,php使用代码块来表示循环的范围,而循环以一个开括号{并以一个右括号(})结束,以清楚地告诉php它应循环通过哪些代码行。

与if语句一样,您可以在循环中放置您选择的任何条件,但是每次循环更改条件的值至关重要;否则,循环将永远执行。虽然循环最常用于递增列表,其中循环的迭代次数没有已知限制。

更常见的循环形式是for循环,稍微复杂一些。 for循环由声明,条件和动作组成,声明是声明循环计数器变量并设置为字符串值的条件,条件是根据值检查循环计数器变量的位置,动作是在每次迭代结束时应该发生什么来改变循环计数器。

这是一个for循环的例子,它在php中的样子。

如您所见,for循环有三个部分用分号分隔。在声明中,我们将变量$ i设置为1.对于条件,如果$ i小于10,我们有循环执行。最后,对于动作,我们为每个循环迭代的$ i的值加1 - 也就是说,每次执行循环代码。

运行时,此脚本将从1到10计数,沿途输出文本。请注意,它实际上不会输出数字10,因为我们指定$ i必须小于10,不小于或等于它。

尽管php提供了大量的函数来执行各种任务,但您仍需要在需要时创建自己的函数。如果您发现自己反复做同样的事情,或者想要跨项目共享代码,那么用户函数就适合您。

您可以为您的函数提供您喜欢的任何名称,它们遵循与没有$符号的php变量相同的指导。您可能无法重新定义PHP的内置函数名称不会与现有PHP函数发生冲突 - 仅仅因为您没有可用的imagepng()函数,这并不意味着其他人也不会。

PHP中最简单的用户函数看起来像这样:

使用function关键字定义函数,然后是函数名称和两个括号。函数的实际代码将在大括号之间执行。在函数定义之后,我们可以像处理任何其他函数一样处理foo(),如第5行所示,我们打印出它返回的值。

您可以从函数返回一个值,并使用return语句执行此操作。你可以返回你想要的任何变量,只要它只是一个变量,它可以是整数,字符串,数据库连接等.return关键字将函数返回值设置为你使用它的任何变量,然后立即存在该功能。你也可以使用return;这意味着“退出而不返回值。”如果您尝试为变量分配没有返回值的函数的返回值。您的变量将设置为NULL。

请考虑以下声明:

这将输出In函数,后跟1,然后脚本将终止。我们从未看到离开函数的原因是因为行返回1后退然后立即退出 - 如果永远不会达到foo(),则返回第二个print语句。

您可以通过修改定义以包含任意数量的参数来设计接受参数的函数。您需要为每个参数指定用于在函数内部引用它的名称 - 当您稍后调用该函数时,PHP会将它接收的值复制到这些参数中,如下所示:

运行脚本后,$ mynum将被设置为50. multiply()函数可能已被重写,因此只有一行:返回$ a * $ b,但最好表明你可以使你的函数成为只要你愿意

当涉及到引用时,事情变得更复杂,因为您需要能够通过引用接受参数并且还通过引用返回值。这是通过参考运算符&完成的。

使参数“通过引用传递”在函数定义中完成,而不是在函数调用中完成,即:

is correct, whereas

这个是错的。这意味着如果您在项目中多次使用某个函数,则只需编辑函数定义以使其通过引用获取变量。通过引用传递通常是使脚本更短且更易于阅读的好方法 - 选择很少由性能考虑因素驱动。

与通过引用传递值不同,您在函数定义中指定参数的引用性质,要返回引用,您需要在定义和调用时指定此类。要指定函数应返回引用,请将&符号引用运算符放在函数名称之前,并指定您希望引用函数的结果而不是复制它,使用之前学过的正常引用赋值。

这是看起来如何:

在设计函数时,为未传递的参数指定默认值通常很有帮助。 PHP为其大多数功能执行此操作,并且如果它们通常是相同的,它可以节省您必须在大多数时间传递参数。

要为函数定义自己的默认参数,请在变量后添加要设置的常量值,如下所示:

现在,考虑这个功能:

这并不意味着$ FirstName和$ LastName都应设置为Smith。相反,只有$ LastName获取值 - PHP将这两个变量视为在功能上彼此独立,这意味着您可以使用如下代码:

因此,为了迎接三个名叫约翰史密斯,汤姆戴维斯和汤姆史密斯的人,你会使用这个代码:

如果你想问一个名叫John Wilson的人,理想情况下你会让PHP为你填写第一个参数,因为John是该函数的默认参数,你会提供Wilson部分。但是如果你尝试这样的代码,你会发现它不起作用:

而不是约翰威尔逊,你将获得威尔逊史密斯 - PHP将假设您提供的参数是第一个名称,因为它从左到右填充其参数。相同的逻辑规定您不能在非默认值之前放置默认值,如下所示:

如果有人使用doHello(“Peter”),他们是否会尝试为$ FirstName提供一个值来代替默认值,或者他们想要那里的默认值和Peter的$ LastName吗?希望您能看到为什么PHP会在尝试此操作时标记错误! PHP语言


以上所述就是小编给大家介绍的《The PHP Language》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

第三次浪潮

第三次浪潮

托夫勒 / 黄明坚 / 中信出版社 / 2006-6 / 38.00元

《第三次浪潮》作者托夫勒在20多年前预见的未来是:跨国企业将盛行;电脑发明使SOHO(在家工作)成为可能;人们将摆脱朝九晚五工作的桎梏;核心家庭的瓦解;DIY(自己动手做)运动的兴起……时过境迁,如今我们才发现托夫勒的预言竟大多已成为了现实。   20年前的《第三次浪潮》在打开国门之初给人们心灵造成的冲击,其影响至今仍然连绵不绝。托夫勒在这本书中将人类社会划分为三个阶段:第一次浪潮为农业阶段......一起来看看 《第三次浪潮》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具