Вы можете использовать сценарий оболочки для циклического прохождения файлов (предполагается, что они находятся в текущем каталоге):
#!/bin/bash
for f in *.csv
do
mysql -e "load data infile '"$f"' into table my_table" -u username --password=your_password my_database
done
PHP не поддерживает дружеских объявлений. Возможно моделировать это использование PHP5 __, добираются и __ методы установки и осмотр следа только для разрешенного друга классы, хотя код, чтобы сделать это довольно неуклюж.
Существует некоторый пример кода и обсуждение темы на сайте PHP:
class HasFriends
{
private $__friends = array('MyFriend', 'OtherFriend');
public function __get($key)
{
$trace = debug_backtrace();
if(isset($trace[1]['class']) && in_array($trace[1]['class'], $this->__friends)) {
return $this->$key;
}
// normal __get() code here
trigger_error('Cannot access private property ' . __CLASS__ . '::$' . $key, E_USER_ERROR);
}
public function __set($key, $value)
{
$trace = debug_backtrace();
if(isset($trace[1]['class']) && in_array($trace[1]['class'], $this->__friends)) {
return $this->$key = $value;
}
// normal __set() code here
trigger_error('Cannot access private property ' . __CLASS__ . '::$' . $key, E_USER_ERROR);
}
}
(Код, доказанный tsteiner в nerdclub, отмечает точкой сеть на bugs.php.net),
Я вполне уверен, что Вы ищете, "защищен" или "частный", в зависимости от Вашего варианта использования.
при определении функции в классе, и Вы только хотите это доступный себе, Вы определите его этот путь:
private function foo($arg1, $arg2) { /*function stuff goes here */ }
, Если Вы определяете функцию в классе, что Вы хотите быть доступными классам, которые наследовались этому классу, но не доступные публично, определенные это этот путь:
protected function foo($arg1, $arg2)
я вполне уверен, что по умолчанию в PHP5, функции являются государственными, означая, что Вы не должны использовать следующий синтаксис, но это является дополнительным:
public function foo($arg1, $arg2) { /*function stuff goes here */ }
необходимо будет все еще инстанцировать объекта перед использованием государственной функции. Таким образом, я просто буду полон и сообщу что, чтобы использовать функцию в классе, не инстанцируя объекта, несомненно, использовать следующий синтаксис:
static function foo($arg1, $arg2) { /*function stuff goes here */ }
, Который позволит Вам использовать функцию, только ссылаясь на класс, следующим образом:
MyClass::foo($a1, $a2);
Иначе, необходимо будет сделать следующее:
$myObject = new MyClass();
$myObject->foo($a1, $a2);