Попробуйте заменить
.populate('tags').where('tags.tagName').in(['funny', 'politics'])
на
.populate( 'tags', null, { tagName: { $in: ['funny', 'politics'] } } )
Смотрите пример #1 на http://www.php.net/manual/en/class.errorexception.php
<?php
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
throw new ErrorException($errstr, $errno, 0, $errfile, $errline);
}
set_error_handler("exception_error_handler");
/* Trigger exception */
strpos();
?>
Вы можете определить свой собственный обработчик ошибок с помощью функции set_error_handler()
В функции обработчика вы можете обрабатывать каждый класс ошибок как угодно. Вот основной шаблон, который я использую, в моем случае я хочу обрабатывать только фатальные ошибки, поэтому я игнорирую уведомления и предупреждения.
В вашем случае вы можете делать бэктрейк предупреждений, или регистрировать их как угодно
function error_handler($errno,$message,$file,$line,$context) {
switch($errno) {
// ignore warnings and notices
case E_WARNING:
case E_NOTICE:
case E_USER_NOTICE:
case E_USER_WARNING:
break;
// log PHP and user errors
case E_ERROR:
case E_USER_ERROR:
// Do some processing on fatal errors
}
}
для положительного целочисленного деления
result = 0
while (result + result + result < input)
result +=1
return result
-121--3428184- Как насчет этого, в каком-то Python как псевдокод. Он делит ответ на целую часть и дробную часть. Если вы хотите преобразовать его в представление с плавающей точки, то я не уверен, что лучший способ сделать это.
x = <a number>
total = x
intpart = 0
fracpart = 0
% Find the integer part
while total >= 3
total = total - 3
intpart = intpart + 1
% Fraction is what remains
fracpart = total
print "%d / 3 = %d + %d/3" % (x, intpart, fracpart)
Обратите внимание, что это не будет работать для отрицательных чисел. Чтобы исправить это, необходимо изменить алгоритм:
total = abs(x)
is_neg = abs(x) != x
....
if is_neg
print "%d / 3 = -(%d + %d/3)" % (x, intpart, fracpart)
-121--3428185- Посмотрите на набор _ error _ handler ()
и включите его в начало сценариев или в bootstrap, чтобы просто напечатать трассировку стека, когда E_WARNINGs произойдут.
function stacktrace_error_handler($errno,$message,$file,$line,$context)
{
if($errno === E_WARNING) {
debug_print_backtrace();
}
return false; // to execute the regular error handler
}
set_error_handler("stacktrace_error_handler");
Для улучшения контроля над различными типами, посмотрите на более явную версию, размещенную в других ответах.