Преобразуйте список в набор, а затем найдите количество элементов в наборе. Если результат равен 1, он имеет одинаковые элементы, а если нет, то элементы в списке не идентичны.
list1 = [1,1,1]
len(set(list1))
>1
list1 = [1,2,3]
len(set(list1)
>3
Вам нужно return
массив.
Из docs :
blockquote>
eval()
возвращаетNULL
, если толькоreturn
вызывается в оцениваемом коде, и в этом случае возвращается значение, переданное вreturn
.Итак, вам нужно сделать:
$arr = eval("return array('foo'=>'bar');");
Прежде всего, eval
сильно обескуражен, как описано в руководстве .
Кроме того, вы должны делать что-то вроде $arr = eval("return array('foo'=>'bar');");
, т.е. инициализация $arr
с помощью функции eval. См. Это в действии здесь
Вы имели в виду
eval("\$arr = array('foo'=>'bar');");
var_dump($arr);
$
. Вы находитесь в двойных кавычках, поэтому PHP пытается интерполировать $arr
, так как он не существует, вы завершаете eval
ing " = array('foo'=>'bar');"
.
– Rocket Hazmat
19 October 2012 в 15:28
Функция eval выполняет заданный ему код php. Поскольку ваш код ничего не возвращает, он дает null. Вам нужно вернуть массив и сохранить его в переменной, например
$arr = eval("return array('foo'=>'bar');");
Return Value
, просто посмотрел на пример, который не используетreturn
. – user1643156 19 October 2012 в 15:29eval
в первую очередь? Это медленно и небезопасно. Вероятно, есть лучший способ сделать то, что вы хотите. – Rocket Hazmat 19 October 2012 в 15:29