[ad_1]
次のようなハイパーリンクで必須の3つのパラメーターを渡す必要があります
<a href="<?= base_url('report/print/') . $loc . '/' . $dept . '/' . $e_name ?>"
$loc または $dept または &e_name が none の場合、その値を設定する必要があります ゼロそうしないと、エラーが発生します。
たとえば、ここでは $loc=1 と $dept= null &e_name=null のような 1 つのパラメーター値を渡し、このようなエラーが発生しました..
このエラーが発生します
メッセージ: 関数 Report::print() への引数が少なすぎます。C:\xampp\htdocs\final_approval\system\core\CodeIgniter.php の 533 行目に 1 つが渡され、正確に 3 つが必要です。
これの代わりに、このように渡したい
誰でもこれを行う方法を手伝ってもらえますか?
私が試したこと:
<?php if($loc==''){$loc=="0";}else ($loc=$loc;} if($dept==''){$dept=="0";}else { $dep=$dept;} if($e_name==''){$e_name=="0";}else { $ename=$e_name; }?>
解決策 1
私の知る限り、PHPは null 合体演算子[^] これは、ターゲット変数が null の場合にデフォルト値を提供するために使用できます。 あなたの例では、次のことを試してください:
base_url('report/print/').($loc ?? '0').'/'.($dept ?? '0').'/'.($e_name ?? '0')
基本的にオペレーター ??
式 (変数) の左側をチェックし、値が null
次に、式の右側を使用します。 値がそれ以外の場合は、 null
(例えば、 false
) その後、同じようには機能しないと思います。変数値を使用します。
解決策 2
「)」がない、または多すぎるなど、演算子にいくつかのエラーがあります。
null合体代入演算子を使用することもできます ??= コードを簡素化する – PHP Null 合体演算子[^]
undefined もいくつかの不明なエラーを返す可能性があるため、コードを base_url と少し変更しました。これにより、はるかに短く、より信頼性が高くなります –
function base_url() { $loc ??= 0; $dept ??= 0; $e_name ??= 0; //If the values are empty, they will return 0 else they will return to whatever you have set them to be... return 'report/print/' . $loc . '/' . $dept . '/' . $e_name; }
base_url 関数を呼び出すことができるようになりました –
<a href="<?= $url = base_url(); ?>"><?=print_r($url);?></a>
print_r は、各変数の戻り値を表示します。
[ad_2]
コメント