我知道一個人可能會使用 switch 陳述句,但我目前有這個來檢查所有應該是 int 的函式引數,如果沒有顯示錯誤:
if(!is_int($chartWidth)){
echo "Chart width must be an integer";
}
if(!is_int($chartHeight)){
echo "Chart height must be an integer";
}
if(!is_int($gridTop)){
echo "Grid top must be an integer";
}
if(!is_int($gridLeft)){
echo "Grid left must be an integer";
}
這可以更有效或更短地編碼嗎?
uj5u.com熱心網友回復:
如果這些是您所說的函式引數,那么從 PHP 5 開始,您就可以對函式使用型別提示。假設您每次可以執行以下操作時都期望一個值。
function chart(int $width, int $height, int $top, int $left) {
// Some code
}
如果傳遞給函式的值是非整數型別,則會出現致命錯誤。
uj5u.com熱心網友回復:
你可以使用一個函式:
function assertInt($value, $name)
{
echo is_int($value) ? '' : $name . ' must be an integer.<br>';
}
assertInt($chartWidth, 'Chart width');
assertInt($chartHeight, 'Chart height');
assertInt($gridTop, 'Grid top');
assertInt($gridLeft, 'Grid left');
我不喜歡函式內部的 echo,如果你有多個不是整數的變數怎么辦?因此,我<br>在最后添加了。
uj5u.com熱心網友回復:
使用動態變數名是可能的。
$chartWidth = 100;
$chartHeight = 200;
$gridTop = '1,2';
$gridLeft = 1.2;
$arr = [
'chartWidth' => "Chart width must be an integer",
'chartHeight' => "Chart width must be an integer",
'gridTop' => 'Grid top must be an integer',
'gridLeft' => 'Grid left must be an integer'
];
$result = [];
foreach($arr as $k => $v) {
if(!is_int(${$k})){
$result[] = $v;
}
}
print_r($result);
輸出
Array
(
[0] => Grid top must be an intege
[1] => Grid left must be an integer
)
uj5u.com熱心網友回復:
這將迭代每個變數,如果您想在迭代其余變數之前停止或列印某些內容,我認為這將是最好的
$data = array($chartWidth,$chartHeight,$gridTop,$gridLeft);
foreach ($data as $value) {
echo gettype($value) , "\n";
if(gettype($value)!="integer"){
// do something
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/371171.html
標籤:php
上一篇:手柄更改功能有問題,遺漏一個字符
