此对象中的任何变量都是!isset(),但如果我使用var_dump($interval)或print_r($interval),这些变量将变为isset()。这也适用于empty()/!empty()。所以在下面的代码中$interval->i最初是!isset()但在Ivar_dump($interval)之后是isset()。$future=newDateTime("2018-08-24");$now=newDateTime();$interval=$future->diff($now);if(isset($interval->i)){echo'isset'.$interval-
我想检查$_POST['submit']是否已发布。我的原始代码是:if($_POST['submit']){}但是我有一个带有此代码的PHP通知-“undefinedindex:提交...”所以要删除通知,我必须这样写:if(isset($_POST['submit'])){}但这毫无意义,因为$_POST数组是全局的,它总是返回true。另外,如果我想在没有PHP通知的情况下检查$_POST['submit']是否不为0,我必须这样写:if(isset($_POST['submit'])&&$_POST['submit']!=0){}在这种特殊情况下,我更喜欢:if($_POST[
for($i=0;isset($_POST['key_str'][$i])!=null;$i++){//somephphere}我在工作中继承了一些遗留代码,并且在上面的几个地方发现了for()循环。我多年来一直在编写PHP、Javascript和Python,但从未见过这样的东西。我的直觉告诉我,这是编写此遗留代码的人来自不同的语言。而且可能还不是很有经验。问题:1)isset($_POST['key_str'][$i])的性能是否优于count($_POST['key_str'])?2)这是否类似于您通常在另一种语言中找到的语法?如果是,是哪种语言? 最
在某些情况下,我可以使用@字符而不是使用更长的isset()函数吗?如果不是,为什么不呢?我喜欢用这个,因为在很多情况下我可以保存几个引号、括号和点。 最佳答案 我假设您在谈论errorsuppressionoperator当您说@字符时,但这不能替代isset()。isset()用于确定给定变量是否已存在于程序中,以确定使用该变量是否安全。我怀疑您正在做的是尝试使用该变量,而不管它是否存在,但抑制可能由此产生的任何错误。在一行的开头使用@运算符告诉PHP忽略任何错误并且不报告它。@运算符是“为该表达式临时设置error_repor
我有一个像这样的URL:http://mysite.com/index.php?somename=somevalue我通常通过以下方式检查某个名称是否存在:if(isset($_GET['somename'])){但是,最近我看到很多人这样做:if($_GET['somename']!=NULL){我的问题是,哪种方式比另一种更好? 最佳答案 不同于null检查,isset($_GET['somename']不会抛出“未定义索引”通知,因此它绝对是两者中更可取的。array_key_exists("somename",$_GET);
每次我尝试检查一个变量是否有内容并且某个变量还没有被使用时,我如何防止PHP返回一个Undefinedvariable错误?在我之前的设置中,我可以检查$_POST['email']即使我还没有放入任何东西。它只是返回一个空白或空的结果。这就是我希望我的PHP设置工作的方式,但对于我的生活,我似乎无法弄清楚如何配置它。:(例子:当您在单个PHP页面中使用上述脚本并在我当前的设置中运行它时,它会返回一个undefinedvariable错误。在我之前的设置中,该脚本非常有效。任何人都可以分享一些关于我的这个问题的信息。如果您需要更多详细信息,请直接说出来,我会尝试在这篇文章中添加更多详细
我是PHP新手。我被建议清理$_GET和$_POST。我一直在听从这个建议。但是,如果我只想用检查变量if(isset($_GET['login']))我需要对其进行任何sanitizer吗?此外,我是否需要清理我使用的$_SESSION值? 最佳答案 不,您不必进行任何类型的sanitizer或任何操作:isset()将允许您检查变量(或项目数组,在您的情况下)是否存在——仅此而已。在这里,当您测试项目/变量是否存在时,您无法对其进行清理:要清理数据,您需要它存在。但是请注意:如果该项目存在,isset()将返回false,但它是
我正在尝试检查用户从$_POST提交的数据是否至少具有与我传递的数组相同的元素。我这样做是因为稍后我将通过调用$_POST['element']使用这些元素,而且我不喜欢有关该元素不存在(未设置)的错误。:)我不想使用像isset($_POST['x'],$_POST['y'],$_POST['z'])这样的东西,因为每次我需要重写$_POST,它似乎也不可读。我尝试使用in_array(array('x','y','z'),$_POST),但它不起作用(它返回false当它应该返回true时)。任何想法如何使它工作?:)我确定我有空字符串,如$_POST['x']、$_POST['y
是否可以检查是否存在使用magicsetter设置的属性?classTest{private$vars;publicfunction__set($key,$value){$this->vars[$key]=$value;}publicfunction&__get($key){return$this->vars[$key];}}$test=newTest;$test->myvar='yay!';if(magic_isset($test->myvar)){}或者这是不可能的,我只需要在我的类(class)中设置另一个功能? 最佳答案 使
我总是使用下面的代码来检查索引是否存在并且不为空:if(!(isset($_POST['service'])and$_POST['service']))die('Theserviceparameterisnotavailable.');我在这里检查两个条件。是否可以使用单个内置函数来做到这一点?例如:-if(!isSetAndNotNull($_POST['service']))die('Theserviceparameterisnotavailable.'); 最佳答案 你应该为此使用empty()。http://php.net/