构造方法添加注释
当您打开第一本编程书时,您已经阅读了有关它们的信息。
您已经写了数千遍,
您将在明天和现在的5年后使用它们,
这些是什么?
PHP构造!
这些是知识的基础,语言的核心,
我知道您目前在想什么:
“来吧,我已经很长时间了,现在我在这里阅读有关结构的文章?”
只是阅读整个帖子,
我向您保证,即使您已经编码很长时间了,您也不会发现一个细节,而是几个小细节。
PHP构造介绍 PHP函数和构造之间有很大的不同,
首先将它们映射,然后简化为一组 要解析PHP 构造,后者不能用作回调,但是解析器可以直接理解它们。
当涉及到参数和括号时,构造也遵守不同的规则。
这是一个例子:
echo “Hello World”; echo “Hello”, ”World”; echo(“Hello”,”World”);
我可以肯定,您之前已经看过echo,上面是echo结构的几种变体。
请注意,最后一条语句将引发语法错误。
PHP提供了许多构造。
它们的功能在后台运行,并且在大多数情况下,例如在处理数组时,它们的速度比您自己创建的代码快。
在下面,您将找到PHP 7中最常用的构造的完整列表。
您不需要内心地学习它们,您会意识到,一段时间后它们将成为第二天性,
您可以将本系列的这一部分作为笔记,以便在有疑问或需要时随时咨询。
顺便说一下,这是“ 专家开发人员PHP基础 ”系列的第二部分。
如果您还没有,
看看其他部分 PHP的复兴 如何使用变量(PHP 7)
表中的内容:
断言 数组 宣布 滴答声 编码方式 严格 死亡与退出 做,而 回显并打印 else&elseif&if&切换 空的 为和foreach 评估 去 包含并要求 实例 代替 isset 清单 返回 未设定 注释 结论 断言() 此构造采用两个参数,第一个是断言,第二个是如果断言为false则需要显示的消息。
您可以使用此控件来改变脚本的流程。
assert(&#39;2 <1&#39;, &#39;Two is less than one&#39;);
array&#xff08;&#xff09; 这种语言构造很容易理解&#xff0c;用于创建数组。
$capricciosa &#61; array(&#39;tomato sauce&#39;, &#39;mozzarella&#39;, &#39;artichoke&#39;, &#39;mushrooms&#39;, &#39;anchovies&#39;);
看看官方手册
宣布 这个结构濒临灭绝&#xff0c;
您很少会在代码中碰到它&#xff0c;因为少数程序员知道它的存在&#xff0c;甚至很少知道如何正确使用它。
声明的语法类似于其他流控制构造。
在括号内有一个关键字define是指令&#xff0c;在括号内有要执行的代码。
与可以让您自由使用声明内条件的if语句不同&#xff0c;只有三个可能的选项thicks&#xff0c;encoding和strict_type。
cks虫
在执行PHP脚本的过程中&#xff0c;正在执行多个语句&#xff0c;
该语句的大部分会引起滴答声&#xff0c;
通过使用clarify&#xff08;ticks &#61; number&#xff09;和相关函数register_tick_function&#xff08;&#xff09;&#xff0c; 您可以在这些刻度之间执行代码。
声明设置应传递多少条语句&#xff0c;而register_tick_function&#xff08;&#xff09;指定在出现滴答的情况下应调用哪个函数。
这在循环或测试中可能很有用。
function hyphen(){ echo "-"; } register_tick_function("hyphen"); $i &#61; 0; declare(ticks &#61; 4) { while ($i <17) echo "n"; &#43;&#43;$i; } // the previous code echoes: nnnn-nnnn-nnnn-nnnn
如您所见&#xff0c;我刚刚创建了一个字符串&#xff0c;用作信用卡和借记卡的占位符。
好简单。
编码方式
另一个条件
在这种情况下&#xff0c;仅在编码与定义的编码相对应的情况下才执行代码
declare(encoding&#61;&#39;ISO-8859-1&#39;); // code goes here
严格型
在可能的情况下&#xff0c;PHP将错误的类型赋值为期望的标量类型。
例如&#xff1a;
x &#61; "10" &#43; 10; // x &#61; 20;
PHP足够聪明&#xff0c;可以理解带有“ 10”的字符串应该是整数&#xff0c;并且可以对数字求和而没有任何问题。
现在&#xff0c;
在某些情况下&#xff0c;您不想丢失代码&#xff0c;而需要以更严格的方式进行管理。
在严格模式下&#xff0c;仅接受确切类型的变量&#xff0c;如果发生变量冲突&#xff0c;将引发TypeError。
您可以通过以下方法定义所拥有的控制级别。
declare(strict_types&#61;1);
请注意&#xff0c;上面的字符串必须是页面的第一条语句&#xff0c;紧接在PHP开头标签之后。 否则&#xff0c;您将遇到此错误//致命错误&#xff1a;strict_types声明必须是脚本中的第一条语句。
死亡并退出 这两个构造是别名&#xff0c; 它们在将消息返回到脚本时终止程序 。
好奇心&#xff1a;die构造是一种著名的技术&#xff0c;用于测试变量并在精确的行中停止程序代码&#xff0c;该技术称为dump and die。
如果您对Laravel之类的框架有任何经验&#xff0c;您可能会把它看作dd&#xff08;&#xff09;。
如果您不这样做&#xff0c;那是2018年及以后可在网上找到PHP框架 的最佳比较之一
这是在后台执行的代码&#xff1a;
die(var_dump($variable_to_test));
做&#xff0c;一会儿&#xff0c;一会儿 它们是在条件被验证的情况下执行的循环&#xff0c;我将在以下文章中详细解释它们。
订阅将在发布该帖子时收到通知。
回显并打印 将值输出到stdout&#xff08;它是默认监视器或其他设备&#xff09;。
我写这种教程的原因是帮助您成为更好的程序员&#xff0c;从而改善您的职业生涯。
那么echo和print有什么区别&#xff1f;
以上是作为Web开发人员在面试中最常见的问题之一。
答案是&#xff0c;echo构造不返回任何值&#xff0c;而print构造将返回甚至为null的值&#xff0c;
这意味着您可以根据需要在表达式内使用print。
在W3Schools中回显
else&#xff0c;elseif&#xff0c;if&#xff0c;endif&#xff0c;switch&#xff0c;endswitch 他们都属于同一个家庭
它们被用来创造条件&#xff0c;
敬请关注&#xff01;
我将在以后的文章中详细介绍它们
空&#xff08;&#xff09; 此构造根据使用参数的值返回布尔值。
请记住&#xff0c;空变量&#xff0c;空字符串或值为“ 0”的字符串&#xff0c;无值的数组&#xff0c;值为0的数字变量和false都被视为空
endfor&#xff0c;endforeach&#xff0c;for&#xff0c;foreach 属于循环类别的其他构造。
eval&#xff08;&#xff09; 这种结构允许执行作为参数给出PHP代码&#xff0c;这非常危险&#xff0c;因为允许执行作为参数给出PHP代码。
没有&#xff01;&#xff0c;
你不仅有一个déjàvu&#xff0c;
我写了两次&#xff0c;因为我想让你了解这可能有多麻烦。
PHP核心团队不鼓励使用它&#xff0c;但是如果您仍然选择使用它&#xff0c;则必须特别注意不要传递任何用户数据&#xff0c;尤其是在处理它之前不进行验证。
$string &#61; &#39;dog&#39;; $name &#61; &#39;Tommy&#39;; $str &#61; &#39;My pet is a $animal and its name is $name&#39;; echo $str. "\n"; // the previous line echoes: My pet is a $animal and its name is $name&#39;. eval("\$str &#61; \"$str\";"); echo $str. "\n"; // the previous line echoes: My pet is a dog and its name is Tommy&#39;
去 不需要任何技能即可编写清晰&#xff0c;编写正确的代码并将其完全弄乱。
幸好&#xff0c;
如果这是您的目标&#xff0c;&#xff08;真的吗&#xff1f;&#xff09;PHP提供了完美的关键字来使用。
后藤由两部分组成&#xff0c;第一部分是标签&#xff0c;第二部分是目标&#xff0c;
此命令允许从标签跳转到另一个 目标&#xff0c;从而跳过目标之间的每条语句。
使用goto时需要牢记一些规则。
标签和目标都必须在相同的上下文中&#xff0c;这意味着您不能在方法或函数内将代码作为目标。
同时&#xff0c;您不能跳过调用范围之外目标的函数
包括&#xff0c;包含&#xff0c;要求&#xff0c;要求 PHP的这四个构造具有相同的功能&#xff0c;但方式略有不同。
包含&#xff08;如关键字所示&#xff09;包含文件并对其进行评估&#xff0c;
include_once&#xff0c;此命令与上一个命令相似&#xff0c;但是PHP将确保仅一次包含该文件&#xff0c;
要求&#xff0c;看起来非常类似于包含&#xff0c;实际上&#xff0c;它还包含指示的文件并对其进行评估&#xff0c;但以强制方式进行&#xff0c;
require_once&#xff0c;包含一次相同&#xff0c;
必填项和包含项之间有一个主要区别&#xff0c;
如果找不到或无法读取文件&#xff0c;它将停留在引发的错误上。
这两个include只会发出警告&#xff0c;而必需包含将产生致命错误&#xff0c;您将无法继续。
所以&#xff0c;
通常&#xff0c; 如果请求的文件很重要&#xff0c;并且脚本不能在没有我亲自使用的情况下继续运行&#xff0c;则需要您进行包含。
由于自动加载会自动加载脚本中指示的所有类&#xff0c;因此这些构造的使用越来越少。
这些是我在有关PHP中的面向对象编程的系列教程中介绍的更高级的功能
如果您使用PHP框架&#xff0c;则会使用几种类型的设计模式自动请求所有文件&#xff0c;因此您无需担心。
实例 当使用面向对象范例进行编码时&#xff0c;此构造很有用。
该构造函数的作用是返回一个布尔值&#xff0c;该值指示PHP变量是确定类的对象。
class Building { } class School extends Building { } $school &#61; new School; var_dump($school instanceof School); // this will dump true var_dump($school instanceof Building); // this will also dump true because School is a child of Building
代替 特质是一种OOP功能&#xff0c;用于解决类的单一继承的局限性&#xff0c;
特质类似于类 &#xff0c;通过使用特质&#xff0c;您可以实现新的行为并添加原本无法添加的功能。
使用特征时可能遇到的问题是名称冲突&#xff0c;您需要使用具有相同名称的不同特征。
代替操作可用于选择您喜欢的特征。
trait def { public function pass() { echo &#39;low&#39;; } public function shot() { echo &#39;high&#39;; } } trait att { public function pass() { echo &#39;low&#39;; } public function shot() { echo &#39;high&#39;; } }
isset&#xff08;&#xff09; 它会检查是否已设置变量&#xff0c;如果肯定响应为false&#xff08;如果值不存在&#xff09;&#xff0c;则返回true。
if (isset($variable)) { echo "$variable is set"; }
list&#xff08;&#xff09; 此构造接受一个数组和一个变量列表&#xff0c;并将数组的值立即分配给多个变量。
$sentence &#61; array(&#39;fish&#39;, &#39;raw&#39;, &#39;bitter&#39;); // Listing all the variables list($dish, $temperature, $flavour) &#61; $sentence; echo "The $dish is $temperature and taste $flavour
另外&#xff0c;请注意&#xff0c;您可以阅读有关7.3中与list&#xff08;&#xff09;构造有关的一些非常有趣的新功能。
返回 return构造用于停止当前脚本&#xff0c; 并在需要时提供您要获取的变量。
您可以在函数内部和全局范围内使用return。
如果在函数或方法中使用它&#xff0c;它将返回一个变量并返回到调用作用域&#xff0c;如果在全局作用域中使用它&#xff0c;它将终止程序。
因此&#xff0c;可以在包含文件或必需文件中使用它。
unset&#xff08;&#xff09; 这种语言构造将变量作为参数并将其销毁。
并非总是如此&#xff0c;实际上&#xff0c;当您“重置”变量时&#xff0c;您需要计算所处的范围。
实际上&#xff0c;如果销毁函数内部的变量&#xff0c;则该值在全局范围内仍然可用。
您可以使用上面刚刚解释的isset&#xff08;&#xff09;构造检查变量是否存在。
$variable &#61; &#39;this is a string&#39;; unset($variable); echo $variable; // the result of the echo will be NULL
注释 像大多数其他编程语言一样&#xff0c;即使在PHP中&#xff0c;注释也是该语言的基本组成部分。
创建注释的方法有三种&#xff0c;它们的来源来自较旧的语言。
C样式 它们是一行注释&#xff0c;并由符号&#xff03; 表示 Perl样式 它们也是一行注释&#xff0c;比上一个注释更常见&#xff0c;它们用符号// 表示 多行注释 这些组对多个行进行注释。 该块以/ *开头&#xff0c;并以相反的* / 结尾 还有一个主要用于API的外部标准&#xff0c;看起来像多行注释&#xff0c;但有所不同&#xff1a; / **这称为API注释
* /
评论教程共和国
结论 现在&#xff0c;您了解了所有这些信息&#xff0c;
对于专业的Web开发人员和初学者来说&#xff0c;风险之一就是要善于使用某些功能&#xff0c;而忘记其他一些功能&#xff0c;它们可能做同样的事情&#xff0c;但方式稍有不同&#xff0c;或者可能做了一些您需要学习的事情很久以前&#xff0c;但在不久的将来有必要&#xff0c;
我要你改变策略。
当然&#xff0c;这里有一些您不经常使用的结构&#xff0c;
我对吗&#xff1f;
好吧&#xff0c;现在您了解了更多有关它们的信息&#xff0c;
尝试逐步的方法在代码中实现它们&#xff0c;您会发现它们将很容易进入您的武器库&#xff0c;并使您成为更好的程序员。
毕竟&#xff0c;这就是我们所有人真正想要的。
看看其他部分 PHP的复兴 如何使用变量&#xff08;PHP 7&#xff09;
有什么比开始练习新知识更好的了&#xff1f; 立即开始&#xff01;
充分利用Blue Host的强大功能和速度&#xff0c;创建一个帐户&#xff0c;您可以在每月不超过星巴克Caffe Mocha的实时服务器上进行锻炼并查看改进情况。
翻译自: https://hackernoon.com/construct-and-comments-of-php-7-7f3462499654
构造方法添加注释