我想创建一种更智能的方法来创建if语句。我正在编写一个函数来执行此操作:
if ( ! function_exists( 'get_meta' ) ) {
function get_meta($i) {
$fname_name = array(
'copyright_text',
'about_name',
'archive_name',
'contact_name',
'lenguage_name',
'cc_name',
'about_link',
'archive_link',
'contact_link',
'lenguage_link',
'cc_link',
'about_editors_name',
'about_responsibility_name',
'about_joinus_name',
'about_editors_link',
'about_responsibility_link',
'about_joinus_link'
);
foreach( $fname_name as $fname )
include_once( get_option($fname));
if ( $i ) return $fname_name[$i];
}
}
但是当调用此函数时,它会返回此错误:
警告:include_once()[function.include]:无法打开本地\ wp-content \ themes \ net \ 0.6 \ functions.php中包含的内容(include_path ='。; php \ PEAR') 398
基本上,只想将get_option('');
添加到每个数组,例如返回:
get_option('copyright_text');
或甚至更具体,返回:
get_option('copyright_text', '');
FIXED:
好的,我只是自己解决这个问题,但我很感激这里的任何建议。
使用foreach
和include_once
,我使用更简单的解决方案:
if ($i) return get_option($fname_name[$i], '');
else if ($i == 0) return get_option($fname_name[0], '');
答案 0 :(得分:0)
使用此
foreach( $fname_name as $fname ){
include_once( get_option($fname));
if ( $i ) return $fname;
}
答案 1 :(得分:0)
这看起来就像是在创建一个用于编写访问器方法的快捷方式。你可以自己做一些好看的PHP魔术方法。特别要注意__get,__ set和__call。
http://php.net/manual/en/language.oop5.magic.php
在这种情况下,您正在做的事情类似于以下内容:
class myClass {
// This could be associated with whatever other data you are interested in
private $_meta = array(
'copyright_text',
'about_name',
'archive_name',
'contact_name',
'lenguage_name',
'cc_name',
'about_link',
'archive_link',
'contact_link',
'lenguage_link',
'cc_link',
'about_editors_name',
'about_responsibility_name',
'about_joinus_name',
'about_editors_link',
'about_responsibility_link',
'about_joinus_link'
);
public function __get($name) {
if (in_array($name, $this->_meta)) {
return $this->_meta[$name];
}
}
}