我无法理解为什么变量' xt'和' xs'只访问内部参数(xt = 12,xs = 23),当我打印此代码的第一个变量' xy'给出了内部和外部参数(10,22),但其余的变量只打印了块内的内部参数。
#include <iostream>
using namespace std;
int main()
{
int xy=10;
int xt=11;
int xs=33;
{ int xy;
xy=22;
xt=12;
xs=23;
cout<<xy<<" "<<xt<<" "<<xs<< endl;
}
cout<<xy<<" "<<xt<<" "<<xs<< endl;
return 0;
}
输出结果为:
22 12 23
10 12 23
答案 0 :(得分:3)
xy
与函数范围中的xy
不同,因为您使用
xy
int xy;
因此,当您修改块中的xy
时,您不会修改函数范围中同名变量的值。
另一方面,只有一个xt
和一个xs
。当您在块中修改它们的值时,您将在整个函数范围内修改它们,而不仅仅是在块范围内。
答案 1 :(得分:2)
您在内部范围内创建了一个品牌 new <?php
$args_product = array(
'post_type' => 'product',
'posts_per_page' => 10,
'orderby'=>'title',
'order'=>'ASC',
'product_cat' => $all_categories_data->slug
);
$loop_product = new WP_Query( $args_product );
while ( $loop_product->have_posts() ) : $loop_product->the_post();
?>
<div >
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<div>
<p>Posted by <?php the_author_posts_link(); ?> on <?php the_time('n.j.y'); ?> in <?php echo get_the_category_list(', '); ?></p>
</div>
<div>
<?php the_excerpt(); ?>
<p><a href="<?php the_permalink(); ?>">Continue reading »</a></p>
</div>
<div>
<span><?php echo $all_categories_data->name;?></span>
</div>
</div>
<?php endwhile;?>
对象,该对象与外部范围中的对象完全无关。
所以那是在内部范围内被改变和打印的那个。
但是,内部范围到import React from 'react';
import { render } from 'react-dom';
const Box = ({color}) => (
<div>
this is box, with color of {color}
</div>
);
class ColoredBox extends React.Component {
state = { color: 'red' }
getState() {
return {
color: this.state.color
}
}
render() {
return this.props.children(this.getState())
}
}
render(<ColoredBox><Box /></ColoredBox>, document.getElementById('root'));
和xy
的更改适用于外部范围变量,因为没有内部范围隐藏它们。
以下是实际发生的事情:
xt
我经常发现,根据C编译器从内到外搜索各种范围,直到找到第一个具有匹配名称的对象为止,这是有用的。