【PHP学习之PHP运算符】教程文章相关的互联网学习教程文章

如何在PHP中使用三元运算符(?:)作为“if / else”的简写?【代码】

根据示例from this page,我在下面有工作和非工作代码示例. 使用if语句的工作代码:if (!empty($address['street2'])) echo $address['street2'].'<br />';使用三元运算符的非工作代码:$test = (empty($address['street2'])) ? 'Yes <br />' : 'No <br />';// Also tested this (empty($address['street2'])) ? 'Yes <br />' : 'No <br />';UPDATE在Brian的小费之后,我发现回应$test输出了预期的结果.以下作品就像一个魅力!echo (...

php – 使用三元运算符的不良做法【代码】

在编写一些PHP时,我需要迭代一个也可以返回null的函数调用,所以我使用了以下构造:foreach (($object->method() ? : array()) as $thing) {// Insert code here }我的项目经理并不喜欢这种做法,并坚持要写一些更冗长的内容.我理解他的观点,但如果由我来决定,我会保持原样.别人怎么看待这种做法?解决方法:你有权修改方法()吗?看起来首选的解决方案是让它返回一个空数组而不是null. 编辑 如果那是不可能的,我认为你应该像项目经理建...

我可以在PHP中重载数组下标运算符吗?

我有一个带有内部数组的类,我想重载下标操作符以访问内部数组并提供调试/日志记录操作. 有没有办法在PHP中重载[]运算符,或者在这种情况下我应该追逐另一个选项吗?解决方法:是的,使用ArrayAccess界面.虽然您将无法将对象强制转换为正确的数组. 然而,你可以使用ArrayObject(as mentioned in the duplicate question).另请参阅this comment on php.net,了解如何在扩展ArrayObject时实现此目的.

PHP:什么更快? array_merge或数组union运算符()?

我有两个带有唯一数字键的数组.我怎样才能更快地合并它们?解决方法:PHP 7.1.5上的10000000次迭代,带有两个小的多维数组: > plus-operator():1.966秒> array_merge:9.431秒 所以plus运算符更快但如果你有碰撞,结果是不同的.

php – 如何在CI中使用OR和AND运算符进行查询?【代码】

我尝试通过Active Records在Codeigniter中进行查询:if (isset($data['where']['and'])) {$this->db->where($data['where']['and']); }if (isset($data['where']['or'])) {$this->db->or_where_in('idSpec', $data['where']['or']); }我想得到:WHERE name = 1 AND (idSpec = 2 OR idSpec = 3 OR idSpec = 4);但现在我得到:WHERE name = 1 OR idSpec = 2 OR idSpec = 3 OR idSpec = 4;解决方法:使用以下代码.if (isset($data['whe...

xor运算符在PHP和Visual Basic中的工作方式不同【代码】

我在使用xor运算符时遇到了一些麻烦. 我有一个visual basic应用程序,它具有以下功能:numeroCaracter = Asc(password.Substring(contador, 1)) Xor Asc(CadenaEncriptacion.Substring(contador, 1))password是函数接收的字符串,CadenaEncriptacion是这个常量:Private Const CadenaEncriptacion As String = "eNcRiPtAcIoNmUyChUlAyGuAyDeLpArAgUaYeNcRiPtAcIoNmUyChUlAyGuAyDeLpArAgUaYeNcRiPtAcIoNmUyChUlAyGuAyDeLpArAgUaYeNcRi...

PHP问号运算符和字符串连接【代码】

我仍然是php的新手,我在我的后端框架中使用codeigniter.我有一个table.php文件,可以实时生成一个html表.然后,我遇到了一些问题.$output_string .= "<td>".($row->isactive == "0") ? "Activated":"Deactivated"."</td>";使用上面的代码我什么也得不到,但稍微改变一下:$isactive = ($row->isactive == "0") ? "Activated":"Deactivated"; $output_string .= "<td>".$isactive."</td>";我得到了我的结果,所以我的问题是,为什么? PH...

php三元运算符在输入0时失败【代码】

参见英文答案 > In php, is 0 treated as empty? 18个以下代码工作正常,直到inQuantity收到零“0”.收到零后,它将其评估为空,并输入空值而不是“0”.如果输入“0.00”,则评估为非空.$_POST['inQuantity'] = (!empty($_POST['inQuantity'])) ? $_POST['inQuantity'] : NULL;以下代码生成相同的结果if (empty($_POST['inQuantity'])) {$state = "empty";} else {$state = "full";}当inQuantity为...

php – 使用按位运算符的不同模块的用户角色权限

所以我有一个应用程序,它有几个模块(将模块视为不同的页面),每个模块都有一组权限;查看,添加,编辑,删除 例如,我希望每个用户角色都拥有每个模块的权限Role A Permissions Module 1 -> viewModule 2 -> add, editModule 3 -> view, add, edit, deleteetc.我如何设计数据库来支持它以及如何使用按位运算符来实现它(或者对于这种特殊情况会有更有效的方法吗?) 我已经有了user,user_role和role表,但我不确定如何设计Module表.解决方法...

关于javascript和PHP的三元运算符,输出不同【代码】

我想通过使用unary if在php中做Fizzbuzz,但输出不是我所期望的,我不明白为什么,所以我将代码复制粘贴到javascript,现在结果是预期的.为什么?<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script> <script> $(function(){ papa ='Javascript Output: '; for($i=1;$i <= 10; $i++){ papa += ($i %5 === 0 && $i %3 === 0) ? 'FizzBuzz' : ($i % 3 === 0) ? 'Fizz' : ($i % 5 === 0) ? 'Buzz' :...

为什么unset()在PHP三元运算符中不起作用【代码】

所以这有一个问题,但我对此视而不见.即使在阅读文档两次后(PHP Comparison Operators)isset($items['blog']) ? unset($items['blog']) : NULL;Parse error: syntax error, unexpected T_UNSET解决方法:@Bryan指出,没有函数调用三元运算符中的语言结构.由于这里根本没有涉及返回值,只需:unset($items['blog']);无需事先检查是否设置了值.如果不是,unset就不会做任何事情.

PHP:是否有可能以某种方式将HTML嵌入到三元运算符的中间?【代码】

例如,我可以执行以下操作吗?<? $foobar = 1; $foobar==0 ? ?><span>html goes here.</span> <? : ?><span>something else.</span> <? ; ?>该代码不起作用.所以我猜它不可能,或者是吗?解决方法:替代使用字符串.<?php$x = 10; ?> <p>Some html</p><?= $x == 10 ? '<p>true</p>' : '<p>false</p>' ?><p>Some other html</p>

是否可以在PHP中为此语句创建三元运算符?【代码】

function integer($str){if(preg_match('/[^0-9]/', $str)) { return FALSE;}else{return $str;}}是否可以在PHP中为此语句创建三元运算符?解决方法:是:function integer($str) {return (preg_match('/[^0-9]/', $str) ? false : $str); }

按位运算符文件函数php【代码】

谁能解释一下这个功能是如何工作的?$size=100 //kbif (filesize(file) > ($size << 10))echo "file too big";$size<< 10工作?如何让它使用MB而不是KB?解决方法:表达式$size<< 10将位模式向左移10次,有效乘以1024;换句话说,它是$size * 1024.每次执行左移时,都会将该值乘以系数2.另见bitwise operators. 如果您希望$size表示以MB为单位的大小,则再乘以1024,即if ($filesize($file) > $size * 1024 * 1024) {echo "file too big";...

php – 转换变量时的三元运算符【代码】

在写is_numeric($var)时? (Int)$var:(String)$var;,我想知道是否可以将ternary operator移动到我cast变量的部分:echo (is_numeric($var) ? Int : String)$var;不出我的意料,它不起作用:PHP Parse error: syntax error, unexpected ‘$var’ (T_VARIABLE)这是可能吗?或者可能接近我正在尝试做的事情?这更像是一种好奇的东西而不是使用它的需要.解决方法:没有;这是不可能的.三元运算符期望铸造运算符不是表达式. 然而,可以使用...