Examples: query, "exact match", wildcard*, wild?ard, wild*rd
Fuzzy search: cake~ (finds cakes, bake)
Term boost: "red velvet"^4, chocolate^2
Field grouping: tags:(+work -"fun-stuff")
Escaping: Escape characters +-&|!(){}[]^"~*?:\ with \, e.g. \+
Range search: properties.timestamp:[1587729413488 TO *] (inclusive), properties.title:{A TO Z}(excluding A and Z)
Combinations: chocolate AND vanilla, chocolate OR vanilla, (chocolate OR vanilla) NOT "vanilla pudding"
Field search: properties.title:"The Title" AND text
Beantwortet
eigene PHP Funktionen aufrufen

Hallo,

ich habe nie ganz verstanden warum ich innerhalb einer PHP Funktionen keine eigenen php Funktionen aufrufen kann. In JS funktioniert das ohne Probleme.

<?php

class className extends JobRouter\Engine\Runtime\PhpFunction\RuleExecutionFunction
{
	public function execute($rowId = null)
	{
		toDo();
	}
	toDo(){
		//eigener Code
	}
}
?>
Stimmen Neuste

Antworten 4


Hier gibt es zwei Probleme im Code:

  1. toDo ist keine Methode der Klasse className und vor allem auch keine function
  2. toDo muss im Objektkontext aufgerufen werden $this->toDo()

Ich empfehle einen ausgiebigen Blick in das PHP Manual zu Klassen und Objekten falls Sie mit den Konzepten noch nicht ganz vertraut sind: https://www.php.net/manual/de/language.oop5.php

  
  
Gepostet vor 3 Jahren
Bearbeitet vor 3 Jahren
Andreas Klein
155 × 4 Administrator

Danke, ich habe diesen Denkanstoß gebraucht :)

  
  
Gepostet vor 3 Jahren

Hallo nochmal,

ist es überhaupt möglich, von einer PHP Funktion eine andere PHP Funktion aufzurufen ?

file

Eine Klasse einer Funktion ruft eine zweite auf ?

php_function2(); } } ?>

Da sagt PHP Call to undefined method TESTPHP_3_php_function1::php_function2()

  
  
Gepostet vor 2 Jahren

Hallo Herr Ehrstein,
um es etwas zu präzisieren, das Ganze müsste so aussehen:

<?php

class className extends JobRouter\Engine\Runtime\PhpFunction\RuleExecutionFunction
{
	public function execute($rowId = null)
	{
		$this->toDo();
	}
	
	private function toDo()
	{
		// do Stuff
		// hier könnte man auch etwas returnen
	}
}
?>

Damit ist zum Einen toDo als Klassenmethode definiert und wird zum Anderen mit $this-> korrekt gecallt (weil $this impliziert, dass eine Methode der aktuellen Klasse gecallt wird).

1
1
Gepostet vor 3 Jahren
Jan Zimmerbeutel
272 × 4 Administrator
6K Ansichten
4 Antworten
vor 3 Jahren
vor 2 Jahren
Stichwörter