PHP isset($var) && ...?

2 Antworten

echo liefert keinen Wert zurück, print schon.

void echo ( string $arg1 [, string $... ] )

Der Rückgabe"wert" ist void, also es gibt keinen.

http://php.net/manual/de/function.echo.php

int print ( string $arg )

Hier gibt es einen Rückgabewert vom Typ Integer.

http://php.net/manual/de/function.print.php

Dort steht auch noch:

print ist keine wirkliche Funktion (sondern ein Sprachkonstrukt), weshalb Sie beim Aufruf nicht unbedingt Klammern um die Argumentliste setzen müssen.

Das gilt für echo auch.

Zu deiner Frage zu der Funktion:

function echoo($s){
 echo $s;
}

Ja weil PHP nun mal PHP ist, wenn du in einer Funktion nichts mit return zurückgibst, wird als "Rückgabewert" null angenommen:

Wird return ausgelassen, dann wird der Wert NULL zurückgegeben.

http://php.net/manual/de/functions.returning-values.php

Okay danke :) Das dann einfach trotzdem was zurückgegeben wird, wusste ich nicht ^^

0
Es ist doch das selbe wie

Ja ist es. Jedoch empfehle ich dir stark, auf die Variante mit dem If-Statement zu setzen, weil es wesentlich verständlicher und übersichtlicher ist, was dort geschieht. Am besten sollte man auch noch Klammern setzen, weil man sonst oft das Problem hat, dass man noch eine Anweisung ergänzen möchte und dann der Code logischerweise nicht korrekt arbeitet, wenn man die Klammern nicht einfügt. Das passiert bei größeren Projekten häufiger, als man denkt, und kann einem ganz schön viel sinnlose Debugging-Zeit kosten.

Wieso geht dann isset($a) && echo $a; nicht?

Dies hat dir fluffiknuffi2 schon beantwortet. echo liefert im Gegensatz zu print keinen Rückgabewert und kann somit in diesem Kontext nicht eingesetzt werden, da der Ausdruck vom PHP-Interpreter nicht ausgewertet werden kann.

Das geht dann ^^

Wenn du keinen Return-Type explizit angibst und auch nichts per return zurückgibst, wird null zurückgegeben: http://php.net/manual/de/functions.returning-values.php

Somit ist folgendes durchaus möglich:

function a($s) {
  echo $s;
}

isset($var) && a($var);

Ändern wir jedoch den Return-Type der Funktion a zu nichts, so erhalten wir einen Fatal-Error:

function a($s): void {
  echo $s;
}

isset($var) && a($var);
Wie heißt diese Schreibweise und warum sollte man sie verwenden(mit &&)

Dies ist das logische Und: http://php.net/manual/de/language.operators.logical.php

Es sollte nicht als Ersatz für If-Statements eingesetzt werden, sondern z.B. für die Verkettung mehrerer Bedingungen. Beispiel:

if (bedingung1 && bedingung2) {
  // Code
}

Okay danke.

Ich suchte eigentlich nach dem Name der Schreibweise, wenn man if durch $$ ersetzt. So wie es z.B. den ternären Operator als if - else Ersatz gibt

0
@BrauchJzHilfe
Ich suchte eigentlich nach dem Name der Schreibweise, wenn man if durch $$ ersetzt.

Du meinst durch &&?

&&

Dies ist das logische Und.

isset($a) && print $a

Dies ist eine logische Verknüpfung, in diesem Fall eine Konjunktion.

So wie es z.B. den ternären Operator als if - else Ersatz gibt

Der ternäre Operator ist kein Ersatz für If-Else-Statements und sollte nur in wenigen Fällen, aber auf keinen Fall verkettet, eingesetzt werden, da es sonst schnell unübersichtlich wird.

1

PHP: Wie kann ich den Preis bei dieser Aufgabe berechen?

Hallo. Ich habe die Aufgabe, den Preis von einer ausgewählten Pizza zu berechen. Könnte mir dabei jemand helfen?

HTML:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <p>Bitte geben sie Ihren Name und Ihre Adresse ein, treffen Sie Ihre Asuwahl und senden Sie das Formular ab:</p>
    <form action="ud08.php" method="post">
      <input name="name"> Name<br><br>
      <input name="adresse"> Adresse<br><br>
      <input type="radio" name="gender" value="Herr"> Herr<br>
      <input type="radio" name="gender" value="Frau"> Frau<p>
      <select name="pizzen">
        <option value="Pizza Tuna (7,50€)" name="tuna" selected> Pizza Tuna (7,50€)
        <option value="Pizza Salami (6,50€)" name="salami" selected> Pizza Salami (6,50€)
        <option value="Pizza Kardinale (6,50€)" name="kardinale" selected> Pizza Kardinale (6,50€)
        <option value="Pizza Käse (65,50€)" name="kaese" selected> Pizza Käse (65,50€)
        <option value="Pizza Hawei (8,50€)" name="hawei" selected> Pizza Hawei (8,50€)
      </select>
      <p>
        <input value="Thunfish" name="thunfish" type="checkbox"> Thunfish
      <p>
        <input value="Extra Kaese" name="extrachees" type="checkbox"> Extra Kaese
      <p>
        <input type="submit" value="Anfrage senden">
        <input type="reset" value="Zurücksetzen">
    </form
  </body>
</html>

PHP:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  
  <?php
    if (isset($_POST['thunfish'])) 
      $thunfish=$_POST['thunfish'];
    else
      $thunfish = 0;

    if (isset($_POST['extrachees']))
      $extrachees = $_POST['extrachees'];
    else
      $extrachees = 0;

    if (isset($_POST['tuna']))
      $tuna = $_POST['tuna'];
    else
      $tuna = 0;

    echo "Sehr geehrter ".$_POST['gender']." ".$_POST['name']."<p>";
    echo "vielen Dank für Ihre Bestellung<p> Wir liefern Ihre ".$_POST['pizzen'];

    if ($thunfish)
      echo " mit Thunfish";

    if ($extrachees)
      echo " mit Extra Käse<br>";

    echo " in 20 Minuten an die folgende Adresse:<p>";
    echo $_POST['adresse']."<p>";
    echo "Der Preis Beträgt:<p>";

    if ($tuna)
      echo " 7,50€";

    echo "Ihr Pizza-Team";
  ?>                                                                                                          </html>
...zur Frage

Kann ich am Js Client (Browser) den Sourcecode irgendwie unleserlich machen. / encoden ohne dass das Javascript Crasht?

Ich hab ein Js das ein ajax Post request sendet an ein php script und das trägt was in die Mysql ein

var str = 199; //Beispiel 
function sendcoins(str) {

    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("txtHint").innerHTML = this.responseText;
        }
    };
    
    
    xmlhttp.open("GET", "getcoin.php?update=" + str);
    xmlhttp.send();

}

Soo JZ nimmt php das Brav an

$update = $_REQUEST["update"];

Aber ... jz kommt das Problem jeder kann im Browser die Funktion aufrufen ...

Der Rest erklärt sich selbst denke ich ..

Hat Jemand ne idee wie ich das besser machen kann :0

Währe nice

HappyNewYear

...zur Frage

Link funktioniert nicht - Logout Session destroy

Hallo Zusammen,

ich habe folgendes geschrieben:

<?php 
                if(isset($_SESSION['email']))
                {
                    echo '<a href="'.$_SERVER['PHP_SELF'].'?logout=1">Logout</a>'; 
                    if (isset($_GET['logout'])) 
                         { 
                         $_SESSION = array(); 
                         session_destroy(); 
                          header('Location:index.php') ;
                           
                        
                         
                         } 
                    
                }
                else {
                    echo "LOGIN</a></li>";
                        
                     }
                

?>

In Grunde möchte ich prüfen. ob eine Session existiert. Wenn nicht soll der Link LOGIN erscheinen, wenn bereits eine Session existiert soll der LINK LOGOUT erscheinen.

Klappt soweit auch ganz gut. Aber wenn eine Session existiert und ich auf LOGOUT klicke, aktualisiert sich die Homepage ?logout=1 wird in der Adresse übergeben, der Link LOGIN erschein aber erst beim 2. Klick auf LOGOUT.

Das heisst ja, dass ?logout=1 zwar übergeben, aber nicht verarbeitet wird.

Hat jemand eine Idee wie ich das lösen kann?

Vielen Dank!

Gruß PG

...zur Frage

[PHP] If-Abfrage mit Variable in Bedingung?

Hallo,

ich will mit PHP eine IF-Abfrage programmieren, die als Bedingung die Werte die in einer Variable ($example_users) stehen überprüft:

CODE [PHP]

    [...]   
    $example_users = '"user1" or "user2"';
    [...]
    if ( $zeile['username'] == $example_users ){
        echo "richtig";
    }else{
        echo "falsch";
    }
    [...]

Ausgabe mit $zeile['username'] = user1

falsch

Könnt Ihr mir hier weiterhelfen?

Danke

...zur Frage

Was ist in PHP der Unterschied zwischen IF-Else und switch?

Ist doch eig. das selbe oder? Könnte ich z.B. auch gut ohne Switch auskommen

...zur Frage

Mit PHP Shell Script ausführen?

Hi Community, und zwar möchte ich mithilfe von php ein shell script ausführen und den rückgabewert abfangen.

Mein Shell script: (/home/pi/test.sh)

var=$(sudo gatttool -b 50:F1:4A:50:9C:97 --char-write-req --handle=0x0025 --value=32 --listen >> logfile.txt &)
A=$!
sleep 2
kill $A
echo "$var"
exit 0

und nun bräuchte ich ein php skript (Speicherort: /var/www/html/test.php)das dieses Skript ausführt und den Rückgabewert in eine Variable speichert. Jegliche Versuche von mir sind leider gescheitert...

Gruß Physikgr.

...zur Frage

Was möchtest Du wissen?