我正在使用JSLint来完成JavaScript,并且在执行诸如比较语句内部之类的事情时,它会返回许多建议来替换==
(两个等号)===
(三个等号).idSele_UNVEHtype.value.length == 0
if
有没有性能优势,以代替==
用===
?
任何性能改进都会受到欢迎,因为存在许多比较运算符
如果没有进行类型转换,是否会有性能提升==
?
javascript equality operators equality-operator identity-operator
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 …
每个人都遇到语法错误.即使是有经验的程序员也会犯错误.对于新手来说,这只是学习过程的一部分.但是,通常很容易解释错误消息,例如:
PHP Parse错误:语法错误,第20行的index.php中出现意外的'{'
意想不到的符号并不总是真正的罪魁祸首.但是行号给出了从哪里开始寻找的粗略想法.
始终查看代码上下文.语法错误往往隐藏在提及或在前面的代码行.将您的代码与手册中的语法示例进行比较.
虽然不是每个案例都匹配另一个案例 然而,有一些常规步骤可以解决语法错误.这篇文章总结了常见的陷阱:
意外的T_FUNCTION ......
意外T_IF
意外T_FOREACH
意外T_FOR
意外T_WHILE
意外T_DO
意外T_PRINT
意外T_ECHO
意外的T_INLINE_HTML ......
意外的T_PAAMAYIM_NEKUDOTAYIM ......
意外的T_OBJECT_OPERATOR ......
意外的T_DOUBLE_ARROW ......
意想不到的T_SL ......
意外的T_BOOLEAN_OR ...
意外的T_BOOLEAN_AND ......
意外的T_NS_SEPARATOR ......
可能重复:
3个不同的等于
php中==和===之间有什么区别吗?当我在条件语句中使用它们时,两者似乎都适合我.我是用PHP编程的新手.请考虑一下并用简单的话回答.
我试图在数据插入MySQL查询之前进行检查.这是代码;
$userid = ($vbulletin->userinfo['userid']);
$sql3 = mysql_query("SELECT * FROM table WHERE ID='$_POST[hiddenID]'");
while ($row = mysql_fetch_array($sql3)){
$toon = $row['toonname'];
$laff = $row['tlaff'];
$type = $row['ttype'];
if ($type == 1){
$type == "Bear";
} elseif ($type == 2){
$type == "Cat";
} elseif ($type == 3){
$type == "Dog";
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.基本上,每种类型的"表格"中都有不同的值.1表示熊,2表示猫,3表示狗.
感谢任何人可以帮助我在脚本中查看问题!
if($_POST['user_admin'] = 0){ $acct_type = "a standard"; }
elseif($_POST['user_admin'] = 1){ $acct_type = "an administrator"; }
echo $acct_type;
echo $_POST['user_admin'];
Run Code Online (Sandbox Code Playgroud)
无论$_POST['user_admin']
是0还是1,$acct_type
仍然会返回"管理员"为什么?
在比较之后==
或===
进行比较时放置变量真的很重要吗?
if (null == $var) {
}
if ($var == null) {
}
Run Code Online (Sandbox Code Playgroud)
我经常看到编码员更喜欢这种方式,是不是速度差异?
更新:
对不起,我没有做出清楚我的问题,我想知道是不是之间的不同==
和===
,但这样的表达式null == $var
和$var == null
,所以我已经改变了代码示例.
结论:
没有功能或性能差异.有些人认为这是最佳做法或仅仅是编码风格.BTW它有一个很酷的名字:尤达条件:)
仅供参考:PHP错误消息使用此样式,例如
PHP Fatal error: Cannot use isset() on the result of an expression (you can use "null !== expression" instead)
Run Code Online (Sandbox Code Playgroud)
不知道为什么这个问题被标记为重复(3个不同的等于)不是(' = = $ $ var'和'$ var === false'之间有什么区别?)
为什么null
PHP中的预定义值等于0
或小于-1
同时?请参阅以下代码:
<?php
var_dump(null == 0); // evaluates to true
var_dump(null < -1); // this also evaluates to true
?>
Run Code Online (Sandbox Code Playgroud) 我想我做的非常非常错......
我知道我在使用rand($ a,$ b)做错了,但我发现很难分离,因为我正在从C++转换到PHP
这是相关的源代码:
<?php
$r = rand(1,7);
if ($r = 1){
echo '<p id="quote">a</p>';}
if ($r = 2){
echo '<p id="quote">b"</p>';}
if ($r = 3){
echo '<p id="quote">c</p>';}
if ($r = 4){
echo '<p id="quote">d</p>';}
if ($r = 5){
echo '<p id="quote">e</p>';}
if ($r = 6){
echo '<p id="quote">f</p>';}
if ($r = 7){
echo '<p id="quote">g</p>';}
?>
Run Code Online (Sandbox Code Playgroud) 可能重复:
在PHP中双重等于和三重等于
我试图测试各种类型的非空的"空"变量.一个出现很多的情况是
如果一个字符串等于"''"(即两个单引号字符),那么执行xyz,否则执行abc
我有不同类型的变量,可能是0,'0'(即字符'0',ASCII 48,而不是值0)和""(空字符串).所有这些都与"''"相同,即包含两个单引号的字符串.显然,它们不一样!一个是两个字符的字符串 - ASCII 39,ASCII 39 - 其他字符可以是0,ASCII 48等.
我已经想出了使用is_numeric()等的解决方法,但我不禁想到必须有更好的方法.处理这种事情的首选方法是什么?
非常感谢您耐心等待一个非常天真的问题.
php ×9
if-statement ×2
operators ×2
arguments ×1
compare ×1
debugging ×1
equality ×1
javascript ×1
mysql ×1
parsing ×1
quotes ×1
symbols ×1
syntax-error ×1
variables ×1
zero ×1