Die Zukunft von PHP

Original geschrieben von HolyFly
Genau und das ist die änderrung.

Wie caminus bereits richtig gesagt hat:
Mann übergibt nicht die Variable sondern nur eine Referenz auf die Variable.

Das war auch schon möglich in php :

mit meineFunction(&$eineReferenz)

das heisst wenn mann die Variable eineReferenz ändert so gilt das global.

Was nun neu ist das mann absofort auch bei Referenzvariablen Standartwerte übergeben kann ... das ging vorher nur bei Wertevariablen (also normalen)
ah so... ich hab ne referenz variable noch nie bei ner definition einer funktion gesehen. Is mir neu dass es da klappt :D
 
Zuletzt bearbeitet:
Original geschrieben von mr_d2254

ah so... ich hab ne referenz variable noch nie bei ner definition einer funktion gesehen. Is mir neu dass es da klappt :D

Es klappt ;)
Und mein
Code:
PHP Version 4.1.2

System Linux minbar 2.4.16-xfs #1 Fri Feb 8 23:46:11 CST 2002 i686 unknown
Build Date Mar 31 2002
Configure Command  '../configure' 
'--prefix=/usr' 
'--with-apxs=/usr/bin/apxs' 
'--with-regex=php' 
'--with-config-file-path=/etc/php4/apache'
'--disable-rpath' '--disable-debug' 
'--enable-memory-limit' 
'--enable-calendar' '--enable-sysvsem' 
'--enable-sysvshm' '--enable-track-vars'
'--enable-trans-sid' '--enable-bcmath' 
'--with-bz2' '--enable-ctype' 
'--with-db2' '--with-iconv' 
'--with-ndbm' '--enable-exif' 
'--enable-filepro' '--enable-ftp' 
'--with-gettext' '--enable-mbstring' 
'--with-pcre-regex=/usr' 
'--enable-shmop' '--enable-sockets' 
'--enable-wddx' '--with-xml=/usr' 
'--with-expat-dir=/usr' '--enable-yp' 
'--with-zlib' '--without-pgsql' 
'--disable-static' '--with-layout=GNU' 
'--with-curl=shared,/usr' 
'--with-dom=shared,/usr' 
'--with-zlib-dir=/usr' 
--with-gd=shared,/usr' 
'--with-jpeg-dir=shared,/usr' 
'--with-xpm-dir=shared,/usr/X11R6' 
'--with-png-dir=shared,/usr' 
'--with-freetype-dir=shared,/usr' 
'--with-imap=shared,/usr' 
'--with-ldap=shared,/usr' 
'--with-mcal=shared,/usr' 
'--with-mhash=shared,/usr' '--with-mm' 
'--with-mysql=shared,/usr' 
'--with-unixODBC=shared,/usr' 
'--with-recode=shared,/usr' 
'--enable-xslt' 
'--with-xslt-sablot=shared,/usr' 
'--with-snmp=shared' 
'--enable-ucd-snmp-hack' 
'--with-sybase-ct=shared,/usr' 
'--with-ttf=shared,/usr' 
'--with-t1lib=shared,/usr'

:) lügt nicht ;)
 
PHP:
<?php

  $a = "A";
  $b = "B";


  function swap(&$a,&$b)
  {
    $c = $a;
    $a = $b;
    $b = $c;
  }
  swap($a,$b);

  echo "<br>var A: $a<br>";
  echo "var B: $b<br>";

  function swop($a,$b)
  {
    $a = "swoped a";
    $b = "swoped b";
  }
  swop(&$a,&$b);
  echo "<br>var A: $a<br>";
  echo "var B: $b<br>";

  function swip(&$a,&$b)
  {
    $a = "swIped a";
    $b = "swIped b";
  }
  swip(&$a,&$b);
  echo "<br>var A: $a<br>";
  echo "var B: $b<br>";
?>

swap() klappt,
swop() klappt,
und aha sogar swip() klappt.

swap und swop war mir klar. Bei swip wusste ich das auch nicht ;)

BTW: Richtig (nach Schul C wo PHP ja her kommt) aber ist refenz in der parameterliste der Funktion.

in C sieht das ganze so aus

swap(int& a, int& b);
und aufgrufen wird

int a = 10;
int b = 20;
swap(a,b);
 
ööh ja,... mein 4.0.6er auch nicht. Ich habs mal selber ausprobiert. :) Is sehr günstig muss ich sagen... ich glaub die benutz ich jetzt auch mal. Davor hab ich keinen Nutzen für so was gefunden:

PHP:
$var1 = "orginal";
$var2 = &$var1;
echo $var2; //echo't orginal
$var1 = "neue def";
echo $var2; //echo't neue def
 
Original geschrieben von HolyFly


Noch nicht du musst die Function erst aufrufen ;)

PHP:
<?php
  
  $var = true;

  function reference_test(&$var)
  {
  $var = false;
  }

  reference_test($var);

  if(!$var)
    echo "hallo";
  else
    echo "auf wiedersehen";


?>

...


gibt hallo aus ;)
Frage: warum is das "!" vorm $var
 
ne nich wirklich

PHP:
if(!$var) { }
ist die abkürzung von:

PHP:
if(!isset($var)) { }

und das ist das gegenteil von

PHP:
if(isset($var)) { }

1.: falls $var nicht gesetzt ist ...
2.: falls $var nicht gesetzt ist ...
3.: falls $var gesetzt ist ...
 

Neue Beiträge

Zurück