首页 >后端开发 >php教程 >php这种写法什么意思?解决办法

php这种写法什么意思?解决办法

WBOY
WBOY原创
2016-06-13 11:46:19914浏览

php这种写法什么意思?

<br />if ( defined('WP_USE_THEMES') && WP_USE_THEMES ) :<br />	$template = false;<br />	if     ( is_404()            && $template = get_404_template()            ) :<br />	elseif ( is_search()         && $template = get_search_template()         ) :<br />	elseif ( is_front_page()     && $template = get_front_page_template()     ) :<br />	elseif ( is_home()           && $template = get_home_template()           ) :<br />	elseif ( is_post_type_archive() && $template = get_post_type_archive_template() ) :<br />	elseif ( is_tax()            && $template = get_taxonomy_template()       ) :<br />	elseif ( is_attachment()     && $template = get_attachment_template()     ) :<br />		remove_filter('the_content', 'prepend_attachment');<br />	elseif ( is_single()         && $template = get_single_template()         ) :<br />	elseif ( is_page()           && $template = get_page_template()           ) :<br />	elseif ( is_category()       && $template = get_category_template()       ) :<br />	elseif ( is_tag()            && $template = get_tag_template()            ) :<br />	elseif ( is_author()         && $template = get_author_template()         ) :<br />	elseif ( is_date()           && $template = get_date_template()           ) :<br />	elseif ( is_archive()        && $template = get_archive_template()        ) :<br />	elseif ( is_comments_popup() && $template = get_comments_popup_template() ) :<br />	elseif ( is_paged()          && $template = get_paged_template()          ) :<br />	else :<br />		$template = get_index_template();<br />	endif;<br />	/**<br />	 * Filter the path of the current template before including it.<br />	 *<br />	 * @since 3.0.0<br />	 *<br />	 * @param string $template The path of the template to include.<br />	 */<br />	if ( $template = apply_filters( 'template_include', $template ) )<br />		include( $template );<br />	return;<br />endif;<br />

------解决方案--------------------
很简单,&&的前面是判断->真/假,后面是赋值->必然为真
因为shortcut的原因,如果&&的前半段为假,后半段就不需要判断了
就是说只有前半段判断为真时,后面才能赋值
因为程序的目的是赋值,所以冒号后面就不需要实际的语句了
------解决方案--------------------
可以理解为
也算是三元式的偷懒写法
$template = (is_404()) ? get_404_template() : false;

if (is_404()) $template = get_404_template();
else $template = false;

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn