草庐IT

算术运算

全部标签

javascript - 有没有办法像在 JavaScript 中那样在 PHP 中使用 or 运算符?

当第一个属性不存在时,我想获取关联数组的另一个属性。JavaScript:varobj={"a":"123","b":"456"};vartest=obj.a||obj.b;console.log(test);是否可以在PHP中执行此操作:$arr=array("a"=>"123","b"=>"456");$test=$arr["a"]||$arr["b"];echo$test;当我运行PHP时,我得到1。有什么简短的方法可以做到吗? 最佳答案 在PHP中你可以做到//Checkif$arr["a"]exists,andassign

php - 带类型转换的空合并运算符

我已经升级到PHP7并开始使用nullcoalesceoperator来转换类似的东西$email=isset($_SESSION['email'])?$_SESSION['email']:'';到$email=$_SESSION['email']??'';但如果我也在转换,我不知道该怎么做。例如,for旧语句$id=isset($_GET['id'])?(int)$_GET['id']:0;我会这样想$id=(int)$_GET['id']??0;应该有效,但从某种意义上说,如果未设置$_GET['id'],$id将解析为0但我收到了通知Notice:Undefinedindex:i

PHP 使用 OR 运算符检查多个值的值

我有一个文件名($fname),我需要将$pClass分配给文件类型,之后加上“-”。目前我总是得到text-,不管它是什么文件类型。//Thisgetstheextentionforthefileandassignstheclasstotheicon$pieces=explode('.',$fname);$ext=array_pop($pieces);if($ext==(('txt')||('rtf')||('log')||('docx'))){$pClass='text-';}elseif($ext==(('zip')||('sitx')||('7z')||('rar')||('g

php - PHP混淆中的比较运算符 "=="

在PHP中,null==00=="0"如果将这两者结合起来,您会期望:null=="0"但这不是真的。有人能给我解释一下吗? 最佳答案 第一种情况:null==0null评估为false,与评估为false的0相同,因此两者都是false因此比较返回true。第二种情况:0=="0"这里你比较的是两个不同类型的变量,一个是数字变量,另一个是字符串变量,因为你没有使用===运算符,PHP将其中一个转换为另一种类型,因此0转换为等于"0"的字符串,因此它们是相同的,如果它是"0"转换为数字也转换为0因此它与其他值相同,因此此比较返回tr

php - 什么是 SQL 支持的数字运算的更好选择 - Ruby 1.9、Python 2、Python 3 或 PHP 5.3?

“更好”的标准:数学速度快,简单(字段少,记录多)数据库事务,开发/读取/扩展方便,灵活,可连接。任务是使用一种通用的网络开发脚本语言来处理和计算长时间序列和多维表面(主要是选择/插入一组float并用它们进行数学计算)。选择是Ruby1.9、Python2、Python3、PHP5.3、Perl5.12或JavaScript(node.js)。所有数据都将存储在关系数据库中(由于其高度多维的性质);所有与外部世界的通信都将通过网络服务完成。 最佳答案 我建议使用Python及其出色的科学/数学库(SciPy、NumPy)。否则语言

php - 在 php 中使用 or 运算符?

以下代码:$result=(falseortrue);echo("Withextraparentheses:".($result?"true":"false"));$result=falseortrue;echo("Withnoparentheses:".($result?"true":"false"));生成输出:Withextraparentheses:trueWithnoparentheses:false我不明白为什么。php不应该评估$result=falseortrue;首先测试false然后,因为它不是真的,继续评估true?如有任何建议,我们将不胜感激。

PHP:性能:splat 运算符或反射

在我正在创建的应用程序中,我需要将未知数量的参数传递给类的未知构造函数。类(+命名空间)是一个字符串,在$class中。参数在一个数组中。此应用程序将在几个月内部署,因此我们认为我们已经可以在PHP5.6中开发它。所以我认为这个解决方案是:$instance=new$class(...$args);这是工作...但是我的同事不想接受这个,因为CI服务器不理解这行代码。他们的解决方案是:$reflect=new\ReflectionClass($class);$instance=$reflect->newInstanceArgs($args)现在:两者都工作正常,所以这不是问题。但我的想

PHP运算符&&与 "and"的区别

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:'AND'vs'&&'asoperator很抱歉提出非常基本的问题,但我一周前才开始学习PHP,但在google/stackoverflow上找不到这个问题的答案。我完成了以下程序:$one=true;$two=null;$a=isset($one)&&isset($two);$b=isset($one)andisset($two);echo$a.'';echo$b;它的输出是:falsetrue我读&&/是一样的。两者的结果有何不同?有人能说出真正的原因吗?

PHP奇怪的按位运算符对字符串的影响

更新..移至newquestion.好的,在阅读了PHP文档后,现在清楚了那些位运算符,但是,哈,这是什么?#dump1var_dump('twoidenticalstrings'|'twoidenticalstrings');//mindthe|//string(21)"twoidenticalstrings"#dump2var_dump('twoidenticalstrings'^'twoidenticalstrings');//mindthe^//string(21)""为什么#dump2显示长度==21,但是0个字符?当在Notepad++中复制时,字符串中没有字符的迹象,那么

php - PHP 中的三元运算符

这个问题在这里已经有了答案:HowtoconcatenatemultipleternaryoperatorinPHP?[duplicate](8个答案)关闭7年前。$chow=3;echo($chow==1)?"one":($chow==2)?"two":"three";输出:三个$chow=1;echo($chow==1)?"one":($chow==2)?"two":"three";输出:两个谁能解释为什么当$chow=1而不是“一”时输出是“二”?