请问set_param()函数最后一个参数设置的问题 set_param('文件/元件','参数名','0.1'); 最后一个值是数字就

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问set_param()函数最后一个参数设置的问题 set_param('文件/元件','参数名','0.1'); 最后一个值是数字就相关的知识,希望对你有一定的参考价值。

请问set_param()函数最后一个参数设置的问题
set_param('文件/元件','参数名','0.1');
最后一个值是数字就可以

但是我想把它设置为变量vari或表达式vari×2
如:set_param('文件/元件','参数名','vari');
或set_param('文件/元件','参数名','vari×2');
这样就会把'vari'或'vari×2'作为字符直接赋给参数

正好做毕设遇到了

比如我想用set_param('文件/元件','参数名','x')赋值100个simulink的block

但是赋值进去的不是数字是变量x,当你赋值2号block的时候1号的也会变化(是这个意思吧如果我没理解错)

很容易,把’x’改成num2str(x)就行了,记住是改’x’不是x

补张图:

如图,Amplitude赋值就不是变量t是常数了

参考技术A 解决了吗?楼主 参考技术B 同问,我也遇到这个问题,而且不知道参数名写什么 参考技术C 来个大神围观求答案

传递 NULL 参数与不传递参数完全相同

【中文标题】传递 NULL 参数与不传递参数完全相同【英文标题】:Is passing NULL param exactly the same as passing no param 【发布时间】:2011-06-02 04:41:57 【问题描述】:

我正在使用一个签名看起来像这样的函数

afunc(string $p1, mixed $p2, array $p3 [, int $p4 = SOM_CONST [, string $p5 ]] )

在某些情况下,我没有最后一个参数 $p5 的数据要传递,但为了保持一致性,我仍然想传递 NULL 之类的东西。所以我的问题是,PHP 是否将传递 NULL 完全 视为不传递任何东西?

somefunc($p1, $p2, $p3, $p4 = SOM_CONST);
somefunc($p1, $p2, $p3, $p4 = SOM_CONST, NULL);

【问题讨论】:

是的,它们是相同的,因为如果什么都不传递,则不会分配内存。 函数签名的文档在哪里,它的用途是什么 【参考方案1】:

首先,您的函数签名不正确。强烈建议在 PHP 中将可选参数保留在所有非可选参数之后。

此时,如果你需要跳过一些可选参数,你可以提供NULL作为它们的值,函数将使用它们的默认值。这将类似于在$x = $x ?? 12 中使用空合并运算符。仅当$x === NULL 时,此代码才会将$x 设置为12

使用func_num_args() 的参数数量在这里甚至不应该被提及,因为无论参数的值是什么,如果您在函数调用中传递一个参数,那么该参数将被函数注意到。当涉及到函数的内部工作时,额外的NULL 参数与任何其他值一样好。您的代码可能需要一个参数为 NULL 才能执行某些任务。

唯一的特殊处理发生在可选函数参数填充有NULL 参数时。

【讨论】:

【参考方案2】:

没有。只有参数的默认值为NULL时才相同,否则不是:

function a($a, $b, $c = 42) 
    var_dump($c);


a(1, 2, NULL);

打印NULL

所以你不能说它总是一样的。 NULL 只是另一个值,它并不是那个特殊的。


更不用说非可选参数了:调用a(1) 会给你一个错误(警告),但a(1,NULL) 有效。

【讨论】:

是的,现在我有了功能,例如。 doSomething ($a=1, $b=2) $arr=array($a, $b);如果我调用 doSomething(15) 它会产生结果 (15,2)。如果我调用 doSomething(15, null),我将得到结果 (15,NULL)。问题是当我只需要在更复杂的函数上设置第二个(或第三个、第四个等)参数时,比如 doSomething(, 30) 这在 php 中是不可能的。它必须设置为null,然后在函数中必须使用合并运算符。【参考方案3】:

传递NULL完全与不传递参数相同 - 如果默认值为 NULL,除非在 func_num_args 函数的上下文中:

返回传递的参数个数 到函数。

<?php

function test($test=NULL) 
    echo func_num_args();


test(); //outputs: 0
test(NULL); //outputs: 1

?>

【讨论】:

强调 "如果默认值为 NULL"(Matthew's answer 涵盖相反的情况) preg_match() 中的 &$matches 这样的函数通过引用传递也是不同的【参考方案4】:

没有。据推测,确切的签名是:

function afunc($p1, $p2, $p3, $p4 = SOM_CONST)

该函数使用func_get_argfunc_get_args 作为$p5

func_num_args 会有所不同,具体取决于您是否传递 NULL。如果我们这样做:


    echo func_num_args();

然后

afunc(1,2,3,4,NULL);

afunc(1,2,3,4);

给出 5 和 4。

由函数决定是否处理这些。

【讨论】:

使用 PHP 函数的真实示例:substr($str, 1)substr($str, 1, null)。 - "如果给定长度并且为 0、FALSE 或 NULL,将返回一个空字符串。"

以上是关于请问set_param()函数最后一个参数设置的问题 set_param('文件/元件','参数名','0.1'); 最后一个值是数字就的主要内容,如果未能解决你的问题,请参考以下文章

请问 android 上如何获取其它app运行次数,以及最后一次运行时间?最好给一个小demo

simulink仿真 为啥运行了很短时间就自己结束了

链接xcos和scilab gui以实时控制模型参数

关于信号处理函数的参数问题!signal ???

pandas使用drop_duplicates函数基于subset参数指定的数据列子集删除重复行并设置keep参数保留重复行中的最后一个数据行

传递 NULL 参数与不传递参数完全相同