Einzelnen Beitrag anzeigen
  #6  
Alt 13.10.2012, 06:43:59
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: heredoc syntax

Zitat:
Zitat von SanPedro Beitrag anzeigen
ich möchte mir eine Klasse für ein Anmeldeformular erstellen habe aber Probleme mit der heredoc Syntax.
http://www.php.net/manual/en/languag...syntax.heredoc

Zitat:
PHP-Code:
<?php
class anmeldeform{
    private 
$action;
        
#-------------------------vvvvvvvvv
    
private $form= <<<Überschrift
Was soll der Umlaut im open identifier? Auch wenns funktionieren sollte, halte Dich besser an die Namenskonventionen.

Zitat:
PHP-Code:
                <form action="$this->action" method="post"
Sowas ist mit oder ohne Heredoc verboten.
1. $this ist in den Properties noch nicht bekannt. Die Methode action auch nicht.
2. "Heredocs can not be used for initializing class properties."

Zitat:
Leider ist über Heredoc wenig zu finden, zumindest wenn es über die Verwendung einer simplen Variable hinaus geht.
Das, was im Handbuch steht, reicht doch. Warum muß es denn ausgerechnet dieser Fummel sein? Wenn Dir Templates nicht gefallen, dann verwende eben sprintf()

PHP-Code:
function login($action $_SERVER['SCRIPT_NAME'], $out false){
  
$txt sprintf('    
            <h1>hier loggen Sie sich ein </h1>
            also bitte<br>
            hier:
            <table>
                <form action="%s" method="post">
                <tr>
                    <td>Benutzername</td>
                    <td><input type="text" name="benuztername"></input></td>
    
                </tr>
                <tr>
                    <td>Passwort</td>
                    <td><input type="password" name="passwort"></input></td>
                </tr>
                <tr>
                    <td><input type="submit" value="abschicken"></input> </td>
                </tr>
            </table>
            </form>'
,
      
$action);
  if (
$out == false)
    return 
$txt;
  else
    echo 
$txt;

Mit Zitat antworten