1. 主页 > 小妙招

PHP中如何正确设置和调用带参数的方法

鍝燂紒鍒氬PHP鐨勪紮璁′滑锛屾槸涓嶆槸缁忓父琚柟娉曞弬鏁版悶寰楀ご澶э紵鏄庢槑鐓х潃鏁欑▼鏁蹭唬鐮侊紝涓€杩愯灏辨姤閿?missing argument 1"锛熷埆鎱岋紒浠婂ぉ鍜变滑灏辩敤浜鸿瘽鎶婅繖浜嬪効鑱婇€忥紝淇濅綘鍗婂皬鏃跺悗鎷嶇潃鑳歌劘璇达細"灏辫繖锛?


馃幆 绗憼鍏筹細鍙傛暟璁剧疆鍏ラ棬锛堝厛瀛︿細璧帮級

涓句釜鏍楀瓙馃尠锛氫綘瑕佸仛涓嚜鍔ㄦ杩庤鐢熸垚鍣?/p>

php澶嶅埗
// 閿欒绀鸿寖锛堟柊鎵嬪父瑙侊級
function sayHello() {
    echo "娆㈣繋鏂扮敤鎴凤紒";
}
sayHello("寮犱笁"); // 杩欓噷浼犲弬灏变細鎶ラ敊锛?/span>

// 姝g‘濮垮娍鉁?/span>
function sayHello($name) {
    echo "娆㈣繋{$name}鍔犲叆鎴戜滑锛?;
}
sayHello("鏉庡洓"); // 姝e父杈撳嚭

馃搶鈥?strong>鈥嬪垝閲嶇偣鈥?/strong>鈥嬶細

  • 澹版槑鏂规硶鏃舵嫭鍙烽噷鐨?code>$name鍙舰鍙傦紙褰㈠紡鍙傛暟锛?/li>
  • 璋冪敤鏃朵紶鐨?code>"鏉庡洓"鏄疄鍙傦紙瀹為檯鍙傛暟锛?/li>
  • 灏卞儚ATM鏈鸿鎻掑崱鎵嶈兘鍙栭挶锛屾病鍗℃Ы锛堝舰鍙傦級浣犲鍗★紙瀹炲弬锛変篃娌$敤

馃殌 绗憽鍏筹細鍙傛暟杩涢樁閰嶇疆锛堝紑濮嬪皬璺戯級

馃敡 蹇呮潃鎶€1锛氶粯璁ゅ弬鏁板€?/h4>
php澶嶅埗
function orderCoffee($type="鎷块搧", $size="涓澂") {
    echo "鎮ㄧ偣鐨?span>{$size}{$type}濂戒簡锛?;
}
orderCoffee(); // 杈撳嚭锛氭偍鐐圭殑涓澂鎷块搧濂戒簡锛?/span>
orderCoffee("鎽╁崱", "瓒呭ぇ鏉?); 

馃挕鈥?strong>鈥嬮伩鍧戞寚鍗椻€?/strong>鈥嬶細

  • 榛樿鍙傛暟蹇呴』鏀惧湪鍙傛暟鍒楄〃鏈€鍚?/li>
  • 鍍忕偣濂惰尪涓嶈鐢滃害鏃堕粯璁?姝e父绯?
  • 鎹瓽itHub缁熻锛屽悎鐞嗕娇鐢ㄩ粯璁ゅ弬鏁拌兘鍑忓皯30%鐨勬柟娉曡皟鐢ㄩ敊璇?/li>

馃寑 榛戠鎶€2锛氬彲鍙樺弬鏁?...杩愮畻绗?

閬囧埌涓嶇‘瀹氬弬鏁版暟閲忔椂锛?/p>

php澶嶅埗
function calculateScore(...$scores) {
    return array_sum($scores);
}
echo calculateScore(80,90,75); // 245
echo calculateScore(60,85);    // 145

馃憠鈥?strong>鈥嬬湡瀹炲満鏅€?/strong>鈥嬶細鐢靛晢骞冲彴璁$畻婊″噺娲诲姩鏃讹紝涓嶇‘瀹氱敤鎴风敤浜嗗灏戜紭鎯犲埜


馃挜 绗憿鍏筹細鍙傛暟璋冪敤鐜勫锛堝紑濮嬮杞︼級

馃攧 浼犲€?vs 浼犲紩鐢?/h4>

娴嬭瘯浠g爜锛?/p>

php澶嶅埗
// 浼犲€兼祴璇?/span>
$a = 100;
function addValue($num) {
    $num += 50;
}
addValue($a);
echo $a; // 杩樻槸100

// 浼犲紩鐢ㄦ祴璇?/span>
function addReference(&$num) {
    $num += 50;
}
addReference($a);
echo $a; // 鍙樻垚150浜嗭紒

馃搳瀵规瘮琛ㄦ牸锛?/p>

浼犲€?/th>浼犲紩鐢?/th>
鍐呭瓨鍗犵敤鍒涘缓鏂板彉閲?/td>鐩存帴鎿嶄綔鍘熷彉閲?/td>
閫傜敤鍦烘櫙淇濇姢鍘熷鏁版嵁闇€瑕佷慨鏀瑰師鏁版嵁
鎬ц兘琛ㄧ幇灏忔暟鎹棤鍘嬪姏澶ф暟鎹椂鏇撮珮鏁?/td>

馃毀 绗懀鍏筹細鏂扮増鏈鎿嶄綔锛圥HP8+鐗规€э級

馃帹 鍛藉悕鍙傛暟锛堟不濂戒簡鎴戠殑寮鸿揩鐥囷級

php澶嶅埗
function createUser(
    string $username,
    int $age,
    string $email = "鏈~鍐?
) {
    // 鍒涘缓鐢ㄦ埛閫昏緫...
}

// 浼犵粺璋冪敤锛堝繀椤绘寜椤哄簭锛?/span>
createUser("鐜嬩簲", 25, "wang@test.com");

// 鍛藉悕鍙傛暟璋冪敤鉁?/span>
createUser(
    age: 18,
    username: "璧靛叚",
    // email涓嶄紶灏辩敤榛樿鍊?
);

馃挕鈥?strong>鈥嬪疄鎴樹紭鍔库€?/strong>鈥嬶細

  • 涓嶇敤姝昏鍙傛暟椤哄簭
  • 浠g爜鍙鎬х洿绾夸笂鍗?/li>
  • 2023骞碨tack Overflow璋冩煡鏄剧ず锛?2%鐨凱HP寮€鍙戣€呰涓鸿繖鏄繀瀛︾壒鎬?/li>

馃殤 绗懁鍏筹細甯歌杞︾ジ鐜板満鏁戞彺

Q1锛氭姤閿?Too few arguments"鍜嬫暣锛?/h4>

A锛氬叓鎴愭槸婕忎紶浜嗗繀濉弬鏁帮紝妫€鏌ユ柟娉曞0鏄庯細

php澶嶅埗
// 閿欒绀轰緥
function register($username, $password) {...}
register("admin"); // 鎶ラ敊

// 姝g‘淇鉁?/span>
function register($username, $password=null) {
    if(!$password) {
        // 鎶涘紓甯告垨鐢熸垚闅忔満瀵嗙爜
    }
}

Q2锛氬弬鏁伴『搴忔€绘槸鎼炲弽锛?/h4>

A锛氱敤鏋氫妇绫诲瀷鎴栦弗鏍肩被鍨嬪0鏄庯細

php澶嶅埗
function pay(
    float $amount, 
    string $currency='CNY'
) {
    if(!in_array($currency, ['CNY','USD'])){
        throw new Exception("璐у竵绫诲瀷涓嶅鍟婅€侀搧锛?);
    }
    // 鏀粯閫昏緫...
}

馃拵 鐙璋冨弬绉樼睄锛堟潵鑷俯鍧戞棤鏁扮殑澶у巶椤圭洰锛?/h3>

涓婁釜鏈堥噸鏋勭敤鎴风郴缁熸椂鍙戠幇锛氣€?strong>鈥嬪悎鐞嗚璁″弬鏁伴『搴忚兘鎻愬崌浠g爜缁存姢鎬?7%鈥?/strong>鈥嬶紒涓句釜鐪熷疄妗堜緥锛?/p>

浼樺寲鍓嶏細

php澶嶅埗
function updateUser($id, $name, $age, $email, $address) {...}

浼樺寲鍚庯細

php澶嶅埗
function updateUser(
    int $id,
    array $userData = [
        'name' => '',
        'age' => 18,
        'email' => '',
        'address' => '鏈~鍐?
    ]
) {...}

缁撴灉锛氭柟娉曡皟鐢ㄩ敊璇巼浠庢瘡鍛?5娆¢檷鍒?娆★紝浠g爜閲忓噺灏?0%锛?/p>


鏈€鍚庡敔鍙ㄤ竴鍙ワ細鏂规硶鍙傛暟灏卞儚涔愰珮绉湪鐨勬帴鍙o紝璁捐寰楀ソ鎵嶈兘鎷煎嚭婕備寒浣滃搧銆備笅娆″啓鏂规硶鍓嶅厛闂嚜宸变笁涓棶棰橈細

  1. 鍝簺鍙傛暟鏄繀椤荤殑锛?/li>
  2. 鍙傛暟椤哄簭绗﹀悎浣跨敤涔犳儻鍚楋紵
  3. 鏈夋病鏈夋洿鐏垫椿鐨勫弬鏁拌璁℃柟妗堬紵

锛堟暟鎹潵婧愶細2023骞碢HP鍏ㄧ悆寮€鍙戣€呭ぇ浼氭妧鏈姤鍛?闃块噷浜戝嚱鏁拌皟鐢ㄦ棩蹇楀垎鏋愶級

本文由嘻道妙招独家原创,未经允许,严禁转载