Я подозреваю, что проблема связана с количеством данных, поступающих с вашим запросом POST. Нет установки, которая ограничивает количество $ _POST vars, которое может быть установлено. Однако для данных POST существует ограничение на память, которое по умолчанию составляет 8 МБ.
В файле php.ini попробуйте изменить значение post_max_size
и установите его на более высокое значение. Не забудьте перезапустить apache после внесения изменений.
Отредактировано один раз - из-за комментария fede s.
Добро пожаловать на SO.
Отказ от ответственности : Я использую ветку Smalltalk / X-jv, которая отличается от smalltalk от gnu-smalltalk, поэтому я не эксперт по gnu-smalltalk.
1145 Я укажу вам на некоторые недостатки, которые я обнаружил. Слишком много, чтобы указывать. Я дам вам несколько общих идей.
Я обычно не рекомендую использовать a
, b
, c
... z
в качестве переменных. Если вы вернетесь к коду через некоторое время, вы его не поймете.
Для переменных используйте строчные буквы, такие как content
вместо Content
. Первая заглавная буква зарезервирована для глобальных переменных. В вашем случае использования это будет имя класса (не смешивайте его).
Если вы хотите создать новый экземпляр, используйте его следующим образом: aCard := Card new.
Не создавайте всю логику приложения в вашем методе #init
(initialize) ! Вы должны разбивать свой код небольшими читаемыми методами.
Ваш init должен выглядеть следующим образом:
Deck extend [
init [
<category: 'initialization'>
content := Array new: 52.
Transcript show: 'Initializing Deck...'.
]
]
, который создаст метод #init
с переменной экземпляра content
. Не забудьте создать методы доступа к переменной. Прочтите руководство для gnu-smalltalk и создания методов экземпляра.
У вас должны быть комментарии к петлям whileTrue:
. Зачем кому-то угадывать причину ограничений?
[a <= 4] whileTrue:[
b := 1 .
[b <= 13] whileTrue:[
...
Иметь веские основания для переопределения new
сообщения. Сообщение Transcript
может быть ini init
:
Deck class >> new [
<category: 'instance creation'>
| r |
r := self new .
Transcript show: 'start '.
r init .
^r
]
Почему вы переопределяете новое? Если у вас есть объект, который является Object subclass:
, то он уже понимает сообщение new
.
В нижней части кода у вас есть z := Deck new.
(я рекомендую использовать, например, myDeck := Deck new.
). Если вы хотите запустить инициализацию, вы просто выполните myDeck init
.
Почему вы в Card >> init
возвращаете ^super init
? Может быть, вы хотели сделать первую строку super init
(чтение \ загрузка инициализации суперкласса), а затем вернуть ^ self
? Трудно сказать.
Suit := Club .
Что это значит? Вы создаете как-то новый объект? (отсутствует сообщение #new
). Ты пытаешься задеть ниточку? Это должно быть suit := 'Club'.
тогда. (то же самое касается всех Sunit
переменных).
Еще бы просто читать с хрустального шара. Попробуйте прочитать больше о Smalltalk, и я надеюсь, что мои советы помогут вам в дороге.