Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 引号中变量名前面的冒号(:)是如何工作的?_Php_Yii - Fatal编程技术网

Php 引号中变量名前面的冒号(:)是如何工作的?

Php 引号中变量名前面的冒号(:)是如何工作的?,php,yii,Php,Yii,我假设:parent_id的计算结果是一个数字。但是,这段代码到底是如何工作的呢?什么时候应该使用此语法(:name) 冒号没有任何特殊意义。模式:parent\u id作为一个整体是这样的,但这只是因为您选择在WHERE条件(parent\u id=:parent\u id)中将其用作变量名 你也可以选择写作 $data=Location::model()->findAll('parent_id=the_quick_brown_fox', array('the_quick_br

我假设
:parent_id
的计算结果是一个数字。但是,这段代码到底是如何工作的呢?什么时候应该使用此语法(
:name


冒号没有任何特殊意义。模式
:parent\u id
作为一个整体是这样的,但这只是因为您选择在
WHERE
条件(
parent\u id=:parent\u id
)中将其用作变量名

你也可以选择写作

$data=Location::model()->findAll('parent_id=the_quick_brown_fox',
     array('the_quick_brown_fox'=>(int) $_POST['Current-Controller']['country_id']));
实际上,使用冒号是因为您为变量选择的名称也可能作为条件的合法部分出现,在这种情况下,它的所有实例都将替换为该值,结果将是意外的

例如,这:

$data=Location::model()->findAll('parent_id=parent_id',
     array('parent_id'=> 1 /*anything, really*/));

将导致条件
1=1
,这将匹配所有记录。

我不确定是否遵循。只是一根绳子吗?如果parent_id为2,那么:parent_id是否在引号中计算为2?它在html中不是这样显示的。我看到另一个例子,例如$length被传递到函数中,然后作者在函数中使用了:length。@user1417526:否,替换是在之后执行的(在处理数据库查询时)。谢谢您的帮助。非常感谢@乔恩,有没有可以省略冒号的证据?
$data=Location::model()->findAll('parent_id=parent_id',
     array('parent_id'=> 1 /*anything, really*/));