So verhindern Sie die Verwendung von Trait-Methoden, die nicht in PHP verwendet werden

Ich würde gerne wissen, ob es eine Möglichkeit gibt, die Verwendung von Trait-Methoden außerhalb eines Klassenkontexts in PHP zu verhindern.

Lassen Sie mich anhand eines kurzen Beispiels erklären, was ich möchte. Hier ist mein aktueller Code:

// File : MyFunctions.php
trait MyFunctions {

    function hello_world() {
        echo 'Hello World !';
    }

}

// File : A.php
include 'MyFunctions.php';

class A {

    use MyFunctions;

}

// File : testTraits.php
include 'A.php';

hello_world(); // Call to undefined function -> OK, expected
A::hello_world(); // Hello World ! -> OK, expected
MyFunctions::hello_world(); // Hello World ! -> Maybe OK, but not expected, I'd like to prevent it

Die PHP-Handbuchseite zu Merkmalen ist sehr umfangreich, und viele Fälle werden behandelt, aber nicht dieser (http://php.net/manual/en/language.oop5.traits.php)

Ich habe verzweifelt versucht, "static" zu entfernen und "public", "protected", "private" zu verwenden, aber natürlich hat es einfach nicht funktioniert. Ich habe noch keine anderen Ideen. Vielleicht fehlt mir etwas, oder es ist einfach unmöglich?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage