[英]Trying to understand &$signature parameter in openssl_sign
我試圖理解-> https://www.php.net/manual/en/function.openssl-sign.php具有&$signature
參數。 我讀到這個 -> PHP &$string - 這是什么意思? 但仍然不明白為什么我們必須有&$signature
作為參數或者我們如何使用它。 https://www.php.net上的示例沒有描述該變量的使用。
這是他們的一個例子。
<?php
// $data is assumed to contain the data to be signed
// fetch private key from file and ready it
$pkeyid = openssl_pkey_get_private("file://src/openssl-0.9.6/demos/sign/key.pem");
// compute signature
openssl_sign($data, $signature, $pkeyid);
// free the key from memory
openssl_free_key($pkeyid);
?>
順便說一句,2022 年新年編碼很棒!
這意味着您通過引用傳遞一個變量( https://www.php.net/manual/en/language.references.pass.php ),用最簡單的術語來說,這意味着您傳遞的變量可以由方法或 function 修改,無需返回它。
例如:
$a = 1;
function foo($value) {
$value++;
}
foo($a);
// $a is still 1
var_dump($a);
而將函數的簽名指定為&$value
:
$b = 1;
function bar(&$value) {
$value++;
}
bar($b);
// $b is 2
var_dump($b);
因此openssl_sign()
function 可能會修改$signature
的值,而無需您通過 getter 請求它的更新值。
還應注意,對象始終通過引用傳遞,因此不需要&$
簽名 - 它們的 state 將始終被修改,並且可以在隨后傳遞給的 function 之外使用。
Function 'openssl_sign' 被定義為計算通過引用傳遞的簽名。
如果沒有 '&',則在調用 function 后參數簽名不會改變。
如果您通過引用 function 來傳遞 var,那么 function 可以直接修改變量而不返回值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.