Strict Standards php error

后端 未结 3 2006
甜味超标
甜味超标 2021-01-26 18:27

I have a small issue with my script.

I\'m getting Strict Standards: Only variables should be passed by reference in

if( $checkDNS && ($domain = e         


        
相关标签:
3条回答
  • 2021-01-26 19:02

    From the PHP manual:

    This array is passed by reference because it is modified by the function. This means you must pass it a real variable and not a function returning an array because only actual variables may be passed by reference.

    So you must use a variable in the end function:

    $domain = explode('@',$email, 2);
    if( $checkDNS && ($domain = end($domain)) )
    
    0 讨论(0)
  • 2021-01-26 19:11

    From the manual:

    mixed end ( array &$array )
    

    end takes the array by reference and move the internal pointer. Your array is the function output, so its unable to correctly modify the array by reference.

    0 讨论(0)
  • 2021-01-26 19:17

    Like the message says, end expects a variable because its parameter is a reference.

    But since PHP 5.4 you can dereference arrays like that:

    $domain = explode('@',$email, 2)[1];
    

    Assuming that $email always contains @. You should assure that beforehand, otherwise end(...) would give you unexpected results too.

    0 讨论(0)
提交回复
热议问题