apply_filters / do_action tag Zeichen Grenze

Hat apply_filters / do_action $tag name ein Zeichenlimit ? Kann es Probleme geben, wenn der Tag-Name viel zu lang ist? Ich frage das, weil ich weiß, dass WP Transienten ein Limit von 45 Zeichen haben .

FYI, das ist das Etikett, auf das ich mich beziehe:

 apply_filters( $tag, .... 

Solutions Collecting From Web of "apply_filters / do_action tag Zeichen Grenze"

Ich dachte immer, dass die Speichergröße die Grenze für die String- Länge ist, aber laut der PHP-Dokumentation :

 string can be as large as up to 2GB (2147483647 bytes maximum) 

Es ist auch die maximal zulässige Speichergröße ( memory_limit ) für das PHP-Skript zu beachten.

Testen: Führen Sie dies nicht auf einem Produktionsserver aus:

Sie könnten immer die str_repeat Idee aus dieser Antwort verwenden , um es zu testen:

 // Check the hook name size limit: $long_hook_name = str_repeat( 'x', 1024 * 1024 ); // Adjust the size until you hit the roof! add_action( $long_hook_name, function(){ echo 'Greetings from the hook with a very long name'; }); do_action( $long_hook_name ); 

aber nur testen, wo es sicher ist (lokal?) 😉

Dasselbe sollte für add_filter() , da add_action() nur ein Wrapper ist:

 function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1) { return add_filter($tag, $function_to_add, $priority, $accepted_args); } 

nach der Quelle .

Das $tag wird als Schlüssel in einem Array verwendet , sodass es in eine Zeichenfolge oder eine Ganzzahl konvertiert wird. Es gibt keine maximale Größe für Strings, der verfügbare Speicher ist die einzige echte Einschränkung. Die Größe einer Ganzzahl hängt von der Plattform ab:

Die Größe einer Ganzzahl ist plattformabhängig, obwohl ein Maximalwert von etwa zwei Milliarden der übliche Wert ist (das sind 32 Bit, die signiert sind). 64-Bit-Plattformen haben normalerweise einen maximalen Wert von etwa 9E18, mit Ausnahme von Windows, das immer 32 Bit lang ist. PHP unterstützt keine Ganzzahlen ohne Vorzeichen. Die Integer-Größe kann mit der Konstante PHP_INT_SIZE und der Maximalwert mit der Konstante PHP_INT_MAX seit PHP 4.4.0 und PHP 5.0.5 bestimmt werden.

Verwenden Sie Zeichenfolgen für bessere Lesbarkeit. Versuchen Sie nicht, den Speicher zu füllen. 🙂