如何可以定義具有參數的PHP函數接受一組固定的類似值來filter_var
它接受作爲參數的各種值作爲上限:我猜測它將會像如何使用接受一組固定值的參數定義PHP函數?
http://php.net/manual/en/filter.filters.validate.php
:
function f(int $params) { ... }
但問題是如何使我自己的固定帽類型的關聯?
例子來闡明:
目前我有兩個功能:
function defineDirConstant($constant, $dirname) {
if (is_dir($dirname) && is_readable($dirname)) {
define(__NAMESPACE__ . '\\' . $constant, $dirname . DIRECTORY_SEPARATOR);
} else {
// some other logic
}
}
function defineFileConstant($constant, $filename) {
if (is_file($filename) && is_readable($filename)) {
define(__NAMESPACE__ . '\\' . $constant, $filename);
} else {
// some other logic
}
}
我哪捨得結合成一個:
function defineFilesystemConstant($constant, $filename, int $type) {
// some logic considering the $type
}
我知道我可以使用這個特例一個布爾類型,但我的問題是一般的:如何使一個人類可讀的參數,它可以被輸入爲文本。例如。函數調用將是
f("ONE", "foo.txt", TYPE_FILE);
f("BAR", "bar", TYPE_DIR);
f("JIM", "jimcarrey", TYPE_SOMETHING_ELSE);
我希望澄清。
我不認爲你真的想要這個如果事情不完美,那麼會出現很多運行時錯誤。 –
如果我正確理解這個,你想創建一個函數來接受一個具有常量值的參數(或者可能更多)嗎?像函數f(constant_goes_here,...){}'? – Andrew
你的意思是你的函數應該接受某些常量(比如MY_FILTER1,MY_FILTER2等)而不是其他的?在這種情況下,沒有內置的方法來做到這一點。您必須檢查輸入在允許範圍內的函數主體。 –