PHP 7 - как поймать & ldquo; Невозможно использовать объект типа & hellip; как массив & rdquo ;?

function getShortString($string,$wordCount,$etc = true) 
{
     $expString = explode(' ',$string);
     $wordsInString = count($expString);
     if($wordsInString >= $wordCount )
     {
         $shortText = '';
         for($i=0; $i < $wordCount-1; $i++)
         {
             $shortText .= $expString[$i].' ';
         }
         return  $etc ? $shortText.='...' : $shortText; 
     }
     else return $string;
} 
2
задан phil123456 17 January 2019 в 07:48
поделиться

3 ответа

Попробуй это. используйте другой улов, чтобы получить фатальные ошибки

try{
    class Stuff
    {

    }

    $stuff= new Stuff();
    $stuff["test"]=0;   <<<<<<< this should trigger the below catch 
} catch (Exception $e) {
    $myLogger->Log($e);
}  catch (Error $e) {
    // Handle error
    echo $e->getMessage(); // Call to a member function method() on string
} catch (Throwable $e) {
        // Handle error
        echo $e->getMessage(); // Call to undefined function undefinedFunctionCall()
    }
0
ответ дан Abdulrehman Sheikh 17 January 2019 в 07:48
поделиться

вот рабочий ответ:

try{
    class Stuff
    {
        $test = null; 
    }

    $stuff= new Stuff();
    $stuff->test = 0;
}
catch (Throwable $e) {
    $myLogger->Log($e);
}
0
ответ дан phil123456 17 January 2019 в 07:48
поделиться

Попробуй это. Это всегда полезно

try{
    class Stuff
    {
        $test = null; 

        public function getTest()
        {
            return $this->test; 
        }

        public function setTest($value)
        {
            $this->test = $value; 
        }
    }

    $stuff= new Stuff();
    $stuff->setTest(0);
    echo $stuff->getTest();
}
catch (Exception $e) {
    $myLogger->Log($e);
}

В противном случае, если вы хотите преобразовать объект в массив, попробуйте это.

$stuff= new Stuff();
$stuff = (array)$stuff;

Это преобразует объект в массив (по типу приведения)

В противном случае устанавливается непосредственно при этом

try{
    class Stuff
    {
        $test = null; 
    }

    $stuff= new Stuff();
    $stuff->test = 0;
}
catch (Exception $e) {
    $myLogger->Log($e);
}
0
ответ дан Abdulrehman Sheikh 17 January 2019 в 07:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: