Default Werte von Argumenten in Funktionen

port29

deus.Server
Hallo Leute,

ich habe da mal eine Frage, wieso t das nicht?

Code:
class foo{
	private $test="bla";
	
	function getBla ($bla = $this->test)
	{
		
	}
	
}
 
Nur skalare Werte können als initiale Werte vorgegeben werden. Und $this->test ist kein skalarer Wert.
Folgendes kannst du jedoch machen:
PHP:
class foo
{
	private $test="bla";
	
	function getBla ($bla = null)
	{
		if( is_null($bla) ) {
			$bla = $this->test;
		}
	}
	
}
 
Oder noch eine Alternative mit Klassenkonstanten.

PHP:
<?php

class foo{
	const test = "bla";
	
	function getBla ($bla = self::test)
	{
		echo $bla;
	}
	
}

$foo = new foo;
$foo->getBla();
?>
 
Zurück