草庐IT

PHP 三元语句使用 'and'

好吧,我刚刚意识到PHP有一些奇怪的行为,想知道为什么会这样。所以运行这段代码:var_dump(trueandfalse?'one':'two');输出booleantrue而不是您所期望的“两个”...问题似乎出在使用“和”上。运行:var_dump(true&&false?'one':'two');输出string'two'(length=3)正如预期的那样。为什么使用“and”而不是“&&”会导致这种奇怪的行为?它们不应该是一样的吗? 最佳答案 那是因为?:有更高的precedence低于和,但低于&&。

java - Java 中是否有类似于 PHP 的三元运算符的简短版本?

在PHP中,三元运算符有一个简短的版本。expr1?expr2:expr3;变成expr1?:expr3;短版本返回expr1的结果为真,expr3为假。这允许很酷的代码可以根据自己的当前状态填充变量。例如:$employee=$employee?:newEmployee();如果$employee==null或由于任何其他原因计算为false,上面的代码将创建一个newEmployee();否则中的值$employee将被重新分配给自己。我在Java中寻找类似的东西,但找不到三元运算符的任何类似用例。所以我问是否有这样的功能或类似的东西可以避免三元运算符的表达式之一以减少重复。

php - 没有 else 的 Blade 三元运算符

我有一个对象,它具有返回bool值的方法hasATest,并且根据我想要启用或禁用按钮的值,所以我想做这样的事情:id}}"id="activate{{$question->id}}""{{$question->hasATest()?disabled:}}">Activate但我不知道该怎么办。如果我删除:,则会发生错误:"unexpected="...此外,残疾人也不是对立的。 最佳答案 正如您已经发现的那样,三元运算符需要一个else,您可以尝试一些语句,例如null或在本例中为""以返回else上的空值。{{($questio

php - 较新风格的 PHP 三元运算符在 isset 函数中有不希望的结果

我对PHP的三元运算符有疑问,自PHP5.3版本以来,您可以用更短的版本替换速记三元运算符//Olderversion$route=isset($test)?$test:'testisNOTset';//Newerversionasof5.3$route=isset($test)?:'testisNOTset';现在在较新的版本中,如果未设置$test。它工作正常。但是,当它因为isset()方法而被设置时,它返回true或1而不是值。我是否必须使用较旧的longer方法来使$route等于$test的值而不是bool值1? 最佳答案

PHP 替代三元运算符

在JavaScript中,您可以使用以下代码:var=value||default;PHP中是否有除三元运算符之外的等价物:$var=($value)?$value:$default;区别在于只需编写一次$value吗? 最佳答案 自php5.3起$var=$value?:$default 关于PHP替代三元运算符,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7901083/

php - 通过引用和三元运算符分配变量?

为什么三元运算符不适用于引用赋值?$obj=newstdClass();//Objecttoadd$result=true;//Opresult$success=array();//Destinationarrayforsuccess$errors=array();//Destinationarrayforerrors//Working$target=&$success;if(!$result)$target=&errors;array_push($target,$obj);//Notworking$target=$result?&$success:&$errors;array_pus

PHP 三元运算符检查变量是否包含某些内容?

考虑以下内容(简化为最基本的内容):abstractclassValidator{publicfunction__construct($data=null){$this->data=$data?:Input::all();}}$validation=newPageValidator($data);'Input::all'正在返回一个数组。$data也是一个数组。我遇到的问题是:$this->data=$data?:Input::all();我认为它本质上是这样做的:if(!$data){$this->data=Input::all();}else{$this->data=$data;}

php - 如何在 PHP 中使用三元运算符代替 if-else

我正在尝试使用三元运算符来缩短我的代码。这是我的原始代码:if($type="recent"){$OrderType="sidDESC";}elseif($type="pop"){$OrderType="counterDESC";}else{$OrderType="RAND()";}如何在我的代码中使用三元运算符而不是ifs/elses?$OrderType=($type="recent")?"sidDESC":"counterDESC";这是我试过的代码,但不知道如何向其中添加“elseif部分”。 最佳答案 这称为三元运算符;-

php - 嵌套三元语句

这个问题在这里已经有了答案:StackingMultipleTernaryOperatorsinPHP(11个答案)关闭2年前。我想知道为什么这会很奇怪。我知道区别在于分组,但相比之下这重要吗?$i=0;foreach($itemsas$item){echo($i==0)?'first_row':($i==sizeof($feedbacks)-2)?'last_row':'none';$i++;}返回last_rownonenonelast_row和$i=0;foreach($itemsas$item){echo($i==0)?'first_row':(($i==sizeof($fee

PHP 三元运算符说明

我经常使用三元运算符,但我一直无法在文档中找到任何关于此的内容,而且我一直对此感到疑惑。下面是一个可能的例子:echo($something->message?$something->message:'nomessage');如你所见,如果$something->message是正确的,我们返回$something->message,但为什么要写两次呢?有没有办法做这样的事情:echo($something->message?this:'nomessage');现在我不太精通编程理论,所以前者不能用“this”之类的东西引用可能是有原因的,但为什么不呢?这不会简化三元运算符的使用吗?对