2009-05-08 7 views
1

Ich bekomme T_String Fehler auf diesem Code, seine Aussage genauer auf der zweiten Zeile ($ form ['com ...) und ich kann einfach nicht sehen, warum.Kann den Fehler in diesem PHP-Code nicht finden

function _maxlength_comment_type_form_alter(&$form, $form_state, $form_id) { 
    $form['comment']['comment_max_length'] = array(
    '#type' => 'select', 
    '#title' => t('Maximum comment length'), 
    '#default_value' => variable_get('comment_max_length_'. $form['#node_type'] -> type, 160), 
    '#options'=> drupal_map_assoc(array(140,160,180,200)), 
    '#description' => t('numero maximo de caracteres permitidos.'), 
    '#weight' => -1, 
    ); 

Im Hinzufügen dieses Codes zu Maxlength Drupal Modul.

+0

Was Sie geschrieben haben, ist syntaktisch korrekter PHP-Code. Es funktioniert für mich ohne einen Syntaxfehler in PHP4 und PHP5, wenn ich es mit pts

Antwort

1

Es könnte dieser Teil sein:

'comment_max_length_'. $form['#node_type'] -> type 

Versuchen um den Pfeil der Räume loszuwerden?


Bearbeiten - Ich glaube nicht, über das tatsächlich ein Problem mit dem Code ist, obwohl ich immer noch die Räume als eine Frage des Stils würde empfehlen, zu entfernen, nur so ist es klar ersichtlich ist, dass Sie dies tun :

'comment_max_length_'. ($form['#node_type']->type) 

eher als das:

('comment_max_length_' . $form['#node_type']) 

Ihr Code gültig ist und funktioniert auf meinem PC TM.


Ein weiterer edit:

Achten Sie darauf, dass $form['comment'] auch definiert wurde. Vielleicht fügen Sie dies am Anfang der Funktion hinzu.

if (!isset($form['comment'])) $form['comment'] = array(); 
+0

einpacke Danke für die Syntaxhinweise Leute, ich lerne immer noch php (noobie), also mache ich wahrscheinlich eine Menge Fehler dieses Typs. Btw ich fand das Problem, es war in einer Funktion direkt nach dem, den ich gepostet habe. Ich muss immer noch besser die Parse-Fehler lesen. Sie acuse eine Zeile, aber der Fehler ist tatsächlich in einem anderen? – Fabio

+0

ja, oft wird das Problem auf der Linie vor oder nach der Linie sein, die es sagt. – nickf

0

Zwei Probleme, die ich sehen kann, die eine Nickf oben angedeutet, dh Sie können nicht einen Raum zu beiden Seiten des Pfeils haben sollte:

'comment_max_length_'. $form['#node_type'] -> type 

Zusätzlich sollte dies kein Komma haben nachdem es (wie es das letzte Element im Array):

'#weight' => -1,` 
+0

Es ist kein Syntaxfehler. Es ist ein schlechter Stil, IMO, aber es ist immer noch gültig PHP. – nickf

+1

Das zusätzliche Komma spielt keine Rolle. Normalerweise füge ich dieses zusätzliche Komma in meinen Code ein. Auf diese Weise, wenn ich später weitere Einträge zum Array hinzufüge, vergesse ich nicht das zusätzliche Komma hinzuzufügen. Außerdem werden meine Diffs kleiner sein. –

+0

Es ist normalerweise kein Problem, aber IIRC (fühlen Sie sich frei, mich zu korrigieren, wenn ich falsch liege), einige ältere PHP-Implementierungen machen Fehler auf dem zusätzlichen Komma. Vielleicht träume ich nur, aber :) –

0

wie sei es zu brechen, dass große Aussage in kleinere, so dass Sie das Problem besser lokalisieren können?

+0

Das half mir sehr, ich nahm Funktion für Funktion heraus, so konnte ich tatsächlich finden, wo der Fehler war – Fabio

Verwandte Themen