>백엔드 개발 >PHP 튜토리얼 >php这种写法什么意思?

php这种写法什么意思?

WBOY
WBOY원래의
2016-06-23 14:27:131150검색

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();}

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.