簡體   English   中英

PHP-帶有變量的函數名

[英]PHP - Prepending Function Name with Variable

我正在創建一個包含許多不同文件的大型系統(目前大約300個文件)。 我創建了一個文件來保存各種用戶定義的函數。

我開始認為最好在每個函數名稱上添加一個前綴,以免與先前定義的函數發生意外沖突。 例如...

我的功能: function add_value()
帶前綴: function PREFIX_add_value()

對於PREFIX_部分,我想我可以創建一個變量,以便將來可以根據需要輕松更改前綴。 所以,也許像這樣...

$func_prefix = 'package_name';
function $func_prefix . add_value()

但是,這不起作用。

因此,是否有關於如何命名/添加函數的最佳實踐,以避免在包含多個文件的系統中發生沖突?

順便說一句,我的共享托管計划上有PHP 5.2.17。

用法:

<?php

$func_prefix = 'package_name'; 
$name = $func_prefix . '_add_value';
$name();// call package_name_add_value();

您正在嘗試解決一個不存在的問題。 您不是第一個遇到此問題的人,並且已經創建了許多范例。 這就是軟件設計的世界。

我的意思是最好的,但是如果您有一個300個文件的項目,並且在問這個問題時沒有考慮面向對象的方法,那么我能給您的唯一積極的看法就是,有一天您將回頭來看這個項目有點難以置信。

我建議您從基本的角度學習和面向對象的編程。 Java,C ++,PHP,沒關系,但請閱讀並進行實驗。 然后考慮您可以在項目中識別哪些“對象”。

存在命名空間是為了防止沖突,但是現在不必為此擔心太多。 我懷疑如果您在代碼中構建正確的對象,則沖突可能會消失。

也就是說,以下代碼雖然“丑陋”,但應該可以解決您的問題

function file1_foo(){
    ....
}

$prefix = 'file1_';
$function = $prefix.'foo';
$function();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM