Home  >  Article  >  Backend Development  >  php这种写法什么意思?

php这种写法什么意思?

WBOY
WBOYOriginal
2016-06-23 14:27:131103browse

php

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

回复讨论(解决方案)

http://www.cnblogs.com/janoyu/archive/2010/05/04/sourcejoy_com_php_other_syntax.html
你可以参考这篇文章

http://www.cnblogs.com/janoyu/archive/2010/05/04/sourcejoy_com_php_other_syntax.html
你可以参考这篇文章
我发的情况和这些都不同啊

if(defined('WP_USE_THEMES') && WP_USE_THEMES){    if('条件'){        //...    }elseif('条件'){        //...    }    //.....}

很简单,&&的前面是判断->真/假,后面是赋值->必然为真
因为shortcut的原因,如果&&的前半段为假,后半段就不需要判断了
就是说只有前半段判断为真时,后面才能赋值
因为程序的目的是赋值,所以冒号后面就不需要实际的语句了

可以理解为
也算是三元式的偷懒写法
$template = (is_404()) ? get_404_template() : false;

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

根据不同结果,显示不同页面

很简单,&&的前面是判断->真/假,后面是赋值->必然为真
因为shortcut的原因,如果&&的前半段为假,后半段就不需要判断了
就是说只有前半段判断为真时,后面才能赋值
因为程序的目的是赋值,所以冒号后面就不需要实际的语句了
明白了!

if     ( is_404()            && $template = get_404_template()            ) :

就是
if  ( is_404() ) {    $template = get_404_template();}

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn