This is a collection of questions that come up every now and then about syntax in PHP. This is also a Community Wiki, so everyone is invited to participate in maintaining this list.
It used to be hard to find questions about operators and other syntax tokens.¹
The main idea is to have links to existing questions on Stack Overflow, so it's easier for us to reference them, not to copy over content from …
我有一个JavaScript对象数组:
var objs = [
{ first_nom: 'Lazslo', last_nom: 'Jamf' },
{ first_nom: 'Pig', last_nom: 'Bodine' },
{ first_nom: 'Pirate', last_nom: 'Prentice' }
];
Run Code Online (Sandbox Code Playgroud)
如何根据last_nomJavaScript中的值对它们进行排序?
我知道sort(a,b),但这似乎只适用于字符串和数字.我是否需要为toString()对象添加方法?
我正在为一个项目的PHP代码部分工作,该项目将YYYY-MM-DD格式的日期与当前日期进行比较,以查看它是否小于当前日期.在代码的不同点,使用两种不同的方法进行这种比较.第一个用于get_timestamp()日期并运行时间戳的比较.在另一个地方,它只是将日期的字符串与输出进行比较date("Y-m-d").我的期望是两个日期字符串的比较不会提供正确的答案.但是,当我设置几个测试用例时,我得到了预期的输出.我回顾了PHP手册的两个部分以获得洞察力,但我仍然感到困惑的是,为什么比较无需转换为时间戳.
PHP手册的比较运算符部分指出,字符串要么被转换为数字,要么进行数字比较,或者它产生称为词法比较的东西.我在词法比较中找不到任何进一步的东西,但是当我读到关于字符串转换为数字并尝试使用日期字符串的示例时,我尝试了每个日期字符串的相同数字输出.
有人可以帮助我理解为什么两个日期字符串的比较大于或小于两个日期字符串(或者至少看起来有效)?我错过了什么?
作为后续工作,如果确实有效,我假设将日期转换为时间戳并根据时间戳进行比较是一种更好的做法.哪个是用于将日期转换为时间戳的更好功能:get_timestamp()或strtotime()?
示例代码小于/大于两个YYYY-MM-DD字符串的比较:
if ("2013-06-27" < "2013-06-28") { echo "less"; } // Output: less
if ("2013-06-27" > "2013-06-28") { echo "more"; } // Output: (none)
if ("2013-06-29" < "2013-06-28") { echo "less"; } // Output: (none)
if ("2013-06-29" > "2013-06-28") { echo "more"; } // Output: more
Run Code Online (Sandbox Code Playgroud)
示例代码测试转换后的YYYY-MM-DD字符串的数值
$foo = 1 + "2013-06-27";
echo "\$foo==$foo"; // Output: $foo = 2014
$foo = 1 + "2013-06-28";
echo …Run Code Online (Sandbox Code Playgroud) 在PHP 7 中,我们有一个新的运算符, spaceship operator <=>,我发现它与strcmp().
它们之间有什么区别吗?
编辑:我在问它们之间的区别,没有提到PHP 7 中的 <=> ('Spaceship' Operator) 是什么?或PHP 7 中的 <=>('Spaceship' 运算符)是什么?
我有一个包含特定值的数组,我想根据其中的特定值对数组进行排序。例如,TOTCOM_METIER DESC。前任 :
Array
(
[0] => Array
(
[TOTCOM_METIER] => 1
[metier] => Traiteur
)
[1] => Array
(
[TOTCOM_METIER] => 4
[metier] => Restauration traditionnelle
)
[2] => Array
(
[TOTCOM_METIER] => 2
[metier] => Coiffure
)
)
Run Code Online (Sandbox Code Playgroud)
我想在 TOTCOM_METIER DESC 上对其进行排序以获得以下结果:
Array
(
[0] => Array
(
[TOTCOM_METIER] => 4
[metier] => Restauration traditionnelle
)
[1] => Array
(
[TOTCOM_METIER] => 2
[metier] => Coiffure
)
[2] => Array
(
[TOTCOM_METIER] => 1
[metier] => Traiteur
) …Run Code Online (Sandbox Code Playgroud) 我了解PHP 7.4中的箭头功能。我尝试像这样使用它们
<?php
$num = 1;
$arrowfunction = () => {
return $num + 1;
}
echo $arrowfunction();
Run Code Online (Sandbox Code Playgroud)
因为我=>在拉取请求中看到了运算符。就像JavaScript。
我希望输出为“ 2”,但这没有用!我有
解析错误:语法错误,第3行/test.php中出现意外的')'