PHP有用的知识和坑:忘了函数参数顺序,是随机的吗?

2023年 7月 12日 44.3k 0

忘了PHP函数的参数顺序,它们是随机的吗?

PHP is a glue that brings together hundreds of external libraries, so sometimes this gets messy. However, a simple rule of thumb is as follows:

Array functionparameters are ordered as " needle, haystack" whereas String functionsare the opposite, so " haystack, needle".

译:数组相关方法的参数顺序为,「needle, haystack」,字符串相关方法则是相反的 「haystack, needle」,

来源: https://www.php.net/manual/zh/faq.using.php#faq.using.parameterorder

我应该如何保存“盐”?

当使用 password_hash() 或者 crypt() 函数时, “盐”会被作为生成的散列值的一部分返回。 你可以直接把完整的返回值存储到数据库中, 因为这个返回值中已经包含了足够的信息, 可以直接用在 password_verify() 或 crypt() 函数来进行密码验证。

下图展示了 crypt() 或 password_hash() 函数返回值的结构。 如你所见,算法的信息以及“盐”都已经包含在返回值中, 在后续的密码验证中将会用到这些信息。

PHP有用的知识和坑:忘了函数参数顺序,是随机的吗?

来源: https://www.php.net/manual/zh/faq.passwords.php#faq.password.storing-salts

下面代码怎么没有分成两行显示?



在 PHP 中,一段代码的结束标记要么是“?>”要么是“?>n”(n 表示换行)。因此在上面的例子中,输出的句子将显示在同一行中,因为 PHP 忽略了代码结束标记后面的换行。这意味着如果要输出一个换行符,需要在每段 PHP 代码的结束标记后面多加一个换行。

PHP 为什么这么做呢?因为在格式化正常的 HTML 时,这样通常会更容易。假如输出了换行而你不需要这个换行时,就不得不用一个非常长的行来达到这样的效果,或者让产生的 HTML 页面的源文件的格式很难读。

来源: https://www.php.net/manual/zh/faq.using.php#faq.using.newlines

字符串连接操作符的优先级问题

如果你运行下面的代码,他将会输出一个警告和结果 3 ,因为字符串连接操作符 . 和 数学运算符 + 、 - 的优先级时一样的,它们将从左往右执行。 Result: 会被强转成数组 0 。如果你在低版本的 PHP 中运行,会告诉你 中边不是一个数字,如果你在 7.4 中运行,会告诉你,在 PHP 8 中 + 、 - 的优先级将会被提高。如果你使用了 PHPSTORM 中的 EA 插件,将会提醒你这个问题。


                        

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论